Python 3.x 使用while循环的简单python程序,关闭一个错误

Python 3.x 使用while循环的简单python程序,关闭一个错误,python-3.x,Python 3.x,我曾试图找出一个错误的位置,但没有运气。我是编程的绝对初学者。增长应该从第二年开始,但我的代码将其添加到第一年。提前感谢您的帮助 ## # 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 # experien

我曾试图找出一个错误的位置,但没有运气。我是编程的绝对初学者。增长应该从第二年开始,但我的代码将其添加到第一年。提前感谢您的帮助

##
# 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
##
#薪水表
# 2/15/2017
#该程序将计算并打印第1年的工资表
#默多克县的老师30岁。每年
#经验丰富,20年以上,工资提高2%。
#每年20岁以后,工资与20岁时相同。
##
比率=2.0
初始工资=37238.00
薪金=起薪
年份=1
印刷品(“默多克县”)
打印(“教师工资表”)
打印()
打印(“年薪”)
打印(“---------”)
当年份<31时:
增加=工资*费率/100
薪水=薪水+加薪
打印(“%4d%15.2f”%(年薪))
年份=年份+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

您的while循环计算该年的增长,即1,然后打印该值。但你只想按原样打印第一年,对吗?因此,简单的解决方案就是将打印设置移到循环的顶部。第一年将正确计算,然后在重新启动循环之前,它将更改薪资和加薪的数量。像这样:

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

您最好使用(…)范围内的
for year
循环。它会更清晰。然后将
年设置为2…?如果第1年意味着第1年的结束(或第2年的开始),它不会被1关闭。只需在输出中添加一个
+1
。非常感谢!现在我只需要在20年后停止加薪……我怎么能在20年后停止加薪呢?我应该使用休息声明吗?现在我需要在20年后停止加薪。我尝试了另一个while循环,但没有成功。“我应该休息一下吗?你的解决方案和我的有什么不同吗?”eyllanesc我花了很长时间写,在你发布你的答案后我才发送了答案,但我没有看到你的答案,因为我在你发布之前打开了页面。@AndrewN。在答案中添加if/else语句,以便在第20年后停止增加。
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))
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