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