Zhanghong528 发表于 2021-3-29 17:02:55

大神帮忙解答一下,这里为什么输入150000就执行不出结果了



yye = int(input('请输入当年的营业额:'))

if yye <= 100000:
    nzj = yye * 0.1
    print('该年年终奖提成为',nzj)
elif 100000 > yye > 200000:
    nzj = 100000 * 0.1 + (yye - 100000) * 0.075
    print('该年年终奖提成为',nzj)
elif 200000 >= yye > 400000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + (yye - 100000) * 0.05
    print('该年年终奖提成为',nzj)
elif 400000 >= yye > 600000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + (yye - 400000) * 0.03
    print('该年年终奖提成为',nzj)
elif 600000 >= yye > 1000000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + 200000 * 0.03 + (yye - 400000) * 0.015
    print('该年年终奖提成为',nzj)
elif yye >= 1000000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (yye - 1000000) * 0.01
    print('该年年终奖提成为',nzj)
else:
    print('输入错误!')

lirenbing01 发表于 2021-3-29 17:07:36

elif 100000 > yye > 200000:   
你150000带进公式算一算不等式成立不成立

弈秋呜呜呜 发表于 2021-3-29 20:45:59

你的这个不等号的方向基本上都是错的

crazyAnonymous 发表于 2021-3-30 05:54:22

本帖最后由 crazyAnonymous 于 2021-3-30 06:00 编辑

你的代码错了:
比如:elif 100000 > yye > 200000:
上面的代码是什么意思?
yye 大于 200000 小于100000
这样一来, 当 yye = 150000 时 除了else以外,所有条件都不成立
你应该将大于号改为小于号
像这样:

yye = int(input('请输入当年的营业额:'))

if yye <= 100000:
    nzj = yye * 0.1
    print('该年年终奖提成为', nzj)
elif 100000 < yye < 200000:
    nzj = 100000 * 0.1 + (yye - 100000) * 0.075
    print('该年年终奖提成为', nzj)
elif 200000 <= yye < 400000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + (yye - 100000) * 0.05
    print('该年年终奖提成为', nzj)
elif 400000 <= yye < 600000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + (yye - 400000) * 0.03
    print('该年年终奖提成为', nzj)
elif 600000 <= yye < 1000000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + 200000 * 0.03 + (yye - 400000) * 0.015
    print('该年年终奖提成为', nzj)
elif yye <= 1000000:
    nzj = 100000 * 0.1 + 100000 + 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (yye - 1000000) * 0.01
    print('该年年终奖提成为', nzj)
else:
    print('输入错误!')

这道题我也做过:

a =
b =
bonus = 0
profit = float(input('请输入本月利润:'))
for i in range(0, 6):
    b = float(b)
    if profit > b:
      profit_0 = profit - b
      profit -= profit_0
      bonus += profit_0 * a
print('奖金为%f' % bonus)

你也可以做一下

haoliang9324 发表于 2021-3-30 07:32:51

crazyAnonymous 发表于 2021-3-30 05:54
你的代码错了:
比如:elif 100000 > yye > 200000:
上面的代码是什么意思?


b=float(b),报错

crazyAnonymous 发表于 2021-3-30 22:44:38

haoliang9324 发表于 2021-3-30 07:32
b=float(b),报错

抱歉, 我不知道为什么我在pycharm中复制过来以后错了

a =
b =
bonus = 0
profit = float(input('请输入本月利润:'))
for i in range(0, 6):
    b = float(b)
    if profit > b:
      profit_0 = profit - b
      profit -= profit_0
      bonus += profit_0 * a
print('奖金为%f' % bonus)

这个可以了,我试过.

名字只有七个字 发表于 2021-3-31 13:36:32

把>全部改成<

江湖散人 发表于 2021-3-31 14:48:32

乍一看,确实没问题,但是细细一看,确实有问题,表达式列错了,<>这个写反了

傻眼貓咪 发表于 2021-9-5 16:15:51

本帖最后由 傻眼貓咪 于 2021-9-5 16:17 编辑

def bonus(amount):
    interest = {
      1000000: 0.01,
      600000: 0.015,
      400000: 0.03,
      200000: 0.05,
      100000: 0.075,
      0: 0.1
    }
    arr = []
    for m in interest.keys():
      if amount >= m and m:
            bal = amount-m
            arr.append(bal*interest)
            amount = amount-bal
      elif not m:
            arr.append(amount*interest)
    return sum(arr)

print(bonus(1234500))
41845.0
页: [1]
查看完整版本: 大神帮忙解答一下,这里为什么输入150000就执行不出结果了