cindyber 发表于 2023-6-21 11:12:00

14讲课后作业那边计算奖金总数

想请问一下,我这个代码哪里有错呢?
a=int(input("请输入今年的利润:"))
if a<=100000:
    print('应该发放的奖金总数是:',a*10%)
elif a<200000:
    print('应该发放的奖金总数是:',(10000+(a-100000)*7.5%))
elif a<=400000:
    print('应该发放的奖金总数是:',(17500+(a-200000)*5%))
elif a<=600000:
    print('应该发放的奖金总数是:',(27500+(a-400000)*3%))
elif a<=1000000:
    print('应该发放的奖金总数是:',(33500+(a-600000)*1.5%))
elif a<=1000000:
    print('应该发放的奖金总数是:',(39500+(a-600000)*1%))

python直接返回运行不了,是不是print的结构错了?显示invalid syntax


isdkz 发表于 2023-6-21 12:23:23

你的代码中的主要错误在于百分比的计算。在Python中,百分比应该使用0.1,0.075,0.05,等等来表示,而不是10%,7.5%,等等。下面是修改后的代码:

a=int(input("请输入今年的利润:"))
if a<=100000:
    print('应该发放的奖金总数是:',a*0.1)
elif a<=200000:
    print('应该发放的奖金总数是:',(10000+(a-100000)*0.075))
elif a<=400000:
    print('应该发放的奖金总数是:',(17500+(a-200000)*0.05))
elif a<=600000:
    print('应该发放的奖金总数是:',(27500+(a-400000)*0.03))
elif a<=1000000:
    print('应该发放的奖金总数是:',(33500+(a-600000)*0.015))
else:
    print('应该发放的奖金总数是:',(39500+(a-1000000)*0.01))


注意我对最后的elif条件进行了修改,变成了else,因为这是对于所有超过1000000的利润的处理方式。

还有一点需要注意,这个程序默认奖金比例对应的阶段是独立的,也就是如果一个人的收入是300000,那么他的前200000的收入会得到不同的奖金比例,而他超过200000的部分又会有不同的奖金比例。如果你希望所有的收入都按照最高收入阶段的比例来计算,那么这个程序就需要进行修改。
页: [1]
查看完整版本: 14讲课后作业那边计算奖金总数