简单的Python程序使用循环,通过一个错误关闭



我试图找出一个错误在哪里,而且没有运气。我是编程绝对的初学者。增加应该从第二年开始,但我的代码将其添加到第一年。事先感谢您的所有帮助!

##
# 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

您只需要在增加工资之前打印。

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

您的wir循环计算一年的增加,这是一个,然后打印出来。但是您想像一年级一样,正确吗?因此,简单的解决方案只是将打印设置移至循环的顶部。第一年将正确计算,然后将更改薪水的数量并在重新启动循环之前增加。这样:

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

请注意,它将计算最后一个循环的下一个工资/增加,但不会打印。或者,在打印一年级的循环之前添加打印行,以便循环在第二年开始(第二个示例的完整代码):

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,以便一年前不再增加增加:

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

相关内容

最新更新