2017-02-16 7 views
0

私は1つのエラーでどこが不足しているのか分かりませんでした。私はプログラミングの初心者です。この増加は、2年目に始まるはずですが、私のコードは1年目にそれを加えています。すべてのヘルプの事前のおかげで!単純なpythonプログラムwhileループを使用して、1つのエラーでオフに

## 
# salaryschedule.py 
# 2/15/2017 
# This program will calculate and print the salary schedule for years 1 
# through 30 for the teachers in Murdock County. For each year of 
# experience, up to 20 years, the salary is increased by 2%. 
# Each year after 20, the salary stays the same as year 20. 
## 

RATE = 2.0 
INITIAL_SALARY = 37238.00 
salary = INITIAL_SALARY 
year = 1 

print("Murdock County") 
print("Teacher Salary Schedule") 
print() 
print("Year   Salary") 
print("----   ------") 



while year < 31 : 
    increase = salary * RATE/100 
    salary = salary + increase 
    print("%4d %15.2f" % (year, salary)) 
    year = year + 1 
+1

...) 'ループ。それはもっと明白だろう。 – khelwood

+0

次に、 'year'を2に設定します...? – Li357

+0

1年目が1年目の* end *(または2年目の開始日)を意味する場合は、1ではありません。出力に 'year'に' + 1'を追加するだけです。 – Evert

答えて

0

給与を増やす前に印刷してください。

RATE = 2.0 
INITIAL_SALARY = 37238.00 
salary = INITIAL_SALARY 
year = 1 

print("Murdock County") 
print("Teacher Salary Schedule") 
print() 
print("Year   Salary") 
print("----   ------") 



while year < 31 : 
    print("%4d %15.2f" % (year, salary)) 
    increase = salary * RATE/100 
    salary = salary + increase 
    year = year + 1 

出力:

Murdock County 
Teacher Salary Schedule 

Year   Salary 
----   ------ 
    1   37238.00 
    2   37982.76 
    3   38742.42 
    4   39517.26 
    5   40307.61 
    6   41113.76 
    7   41936.04 
    8   42774.76 
    9   43630.25 
    10   44502.86 
    11   45392.91 
    12   46300.77 
    13   47226.79 
    14   48171.32 
    15   49134.75 
    16   50117.45 
    17   51119.79 
    18   52142.19 
    19   53185.03 
    20   54248.73 
    21   55333.71 
    22   56440.38 
    23   57569.19 
    24   58720.57 
    25   59894.99 
    26   61092.89 
    27   62314.74 
    28   63561.04 
    29   64832.26 
    30   66128.90 
+0

ありがとう!今私は20年後に増加を止めなければなりません.... –

+0

20歳後に給料の引き上げを止める方法はありますか?私は使用すべきbreak文がありますか? –

-1

あなたのwhileループが1年、のための増加を算出し、それを印刷します。しかし、1年目をそのままそのまま印刷したいのですか?したがって、単純な解決策は、印刷設定をループの先頭に移動することです。 1年目が正しく計算され、その後、給与の数値が変更され、ループを再開する前に増加します。このように:

while year < 31 : 
    print("%4d %15.2f" % (year, salary)) 
    increase = salary * RATE/100 
    salary = salary + increase 
    year = year + 1 

最後のループで次回の給与/増額が計算されますが、それは印刷されません。あるいは、ループ年2(第2の実施例の完全なコード)に開始するように、年いずれかを印刷し、ループ前に印刷行を追加します。

RATE = 2.0 
INITIAL_SALARY = 37238.00 
salary = INITIAL_SALARY 
year = 1 

print("Murdock County") 
print("Teacher Salary Schedule") 
print() 
print("Year   Salary") 
print("----   ------") 

#Changed to so that salary does not increase after 20 years. 

print("%4d %15.2f" % (year, salary)) 
while year < 31 : 
    if year < 20: 
     increase = salary * RATE/100 
     salary = salary + increase 
     year = year + 1 
     print("%4d %15.2f" % (year, salary)) 
    else: 
     year = year + 1 
     print("%4d %15.2f" % (year, salary)) 

は、以下の出力を与え、給与が年間で増加しているないことに注意してください20.これを望まない場合は、ifステートメントの20を19に変更して、1年前に増加を追加しないようにします。

Murdock County 
Teacher Salary Schedule 

Year   Salary 
----   ------ 
    1   37238.00 
    2   37982.76 
    3   38742.42 
    4   39517.26 
    5   40307.61 
    6   41113.76 
    7   41936.04 
    8   42774.76 
    9   43630.25 
    10   44502.86 
    11   45392.91 
    12   46300.77 
    13   47226.79 
    14   48171.32 
    15   49134.75 
    16   50117.45 
    17   51119.79 
    18   52142.19 
    19   53185.03 
    20   54248.73 
    21   54248.73 
    22   54248.73 
    23   54248.73 
    24   54248.73 
    25   54248.73 
    26   54248.73 
    27   54248.73 
    28   54248.73 
    29   54248.73 
    30   54248.73 
    31   54248.73 
+0

今私は20歳後に給与を引き上げるのを止める必要があります。私はループ中にもう一度試しましたが、うまくいきませんでした。私は使用すべき休憩はありますか? –

+0

あなたのソリューションは私とどのように異なっていますか? – eyllanesc

+0

@eyllanesc私はとても長い執筆をしました。あなたの投稿後に回答を送ったが、あなたがそれを投稿する前にページを開いたので、あなたの答えを見られなかった。 – Thomasedv

関連する問題