|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自学Python中,有问题求助:
作业:
1. 通常企业发放的年终奖是根据一年的盈利进行提成,A 公司的提成规则如下:2L1^C|=kr
ntb&Sf4IjyD'P}_1sCG{pMV=
当利润低于或等于 10 万元时:年终奖为 10%
当利润高于 10 万元,低于 20 万元时:低于 10 万元的部分按 10% 提成,高于 10 万元的部分,按 7.5% 提成
当利润 20 万到 40 万之间时:低于 10 万元的部分按 10% 提成,高于 10 万元低于 20 万元的部分,按 7.5% 提成,高于 20 万元的部分,按 5% 提成
当利润 40 万到 60 万之间时:低于 10 万元的部分按 10% 提成;高于 10 万元低于 20 万元的部分,按 7.5% 提成;高于 20 万元低于 40 万元的部分,按 5% 提成;高于40万元的部分,按 3% 提成
当利润 60 万到 100 万之间时:低于 10 万元的部分按 10% 提成;高于 10 万元低于 20 万元的部分,按 7.5% 提成;高于 20 万元低于 40 万元的部分,按 5% 提成;高于40万元低于 60 万元的部分,按 3% 提成;高于60万元的部分,按 1.5% 提成
当利润高于 100 万元时:低于 10 万元的部分按 10% 提成;高于 10 万元低于 20 万元的部分,按 7.5% 提成;高于 20 万元低于 40 万元的部分,按 5% 提成;高于40万元低于 60 万元的部分,按 3% 提成;高于60万元低于 100 万的部分,按 1.5% 提成;超过 100 万元的部分按 1% 提成
请编写一个程序,根据录入的利润,计算出应该发放的奖金总数?
我的答案:
profit = input("请输入今年的利润:")
x = float(profit)
if x <= 100000:
a = x * 0.1
print("应该发放的奖金总数为:", a, sep="")
elif 100000 < x <= 200000:
b = a + (x - a) * 0.075
print("应该发放的奖金总数为:", b, sep="")
elif 200000 < x <= 400000:
c = b + (x - b) * 0.05
print("应该发放的奖金总数为:", c, sep="")
elif 400000 < x <= 600000:
d = c + (x - c) * 0.03
print("应该发放的奖金总数为:", d, sep="")
elif 600000 < x <= 1000000:
e = d + (x - d) * 0.015
print("应该发放的奖金总数为:", e, sep="")
elif x >= 1000000:
f = e + (x - e) * 0.01
print("应该发放的奖金总数为:", f, sep="")
问题1: 但是run 程序的时候 总是提示我 a、b、e啊等 这几个 是name error。 为什么?如何修正
正确答案:
profit = float(input("请输入今年的利润:"))
if profit <= 100000:
reward = profit * 0.1
elif 100000 < profit <= 200000:
reward = 100000 * 0.1 + (profit - 100000) * 0.075
elif 200000 < profit <= 400000:
reward = 100000 * 0.1 + 100000 * 0.075 + (profit - 200000) * 0.05
elif 400000 < profit <= 600000:
reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (profit - 400000) * 0.03
elif 600000 < profit <= 1000000:
reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (profit - 600000) * 0.015
else:
reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit - 1000000) * 0.01
print("应该发放的奖金总数是:", reward, sep='')
问题2: 我的答案是否也是可行的,该如何解决带哦name error的问题,我的答案 和 正确答案直接 最主要的不同是什么?
求解,谢谢大佬!
本帖最后由 沈云初 于 2022-3-24 16:58 编辑
所有的if 后的命令都会运行,而elif后面的命令是根据上一个if是否运行,如果运行了,elif则略过,否则才运行。
问题一:所以当从第二个条件开始,实际第一个if 是没有运行的,a的值是没有计算的
问题二:每一个eilf后面的运算中abc的值都实际表达出来【每一条都是单独运算】
刚刚开始接触python可能描述会有问题,勿怪
|
|