一条正弦 发表于 2023-11-21 21:41:15

刚学了循环语句,使用if elif 循环的时候,系统报错说表达式不能包含赋值

x = input("请输入总工资:")
x = int(x)

if x < 5000:
    print("无需扣税")
elif x < 8000:
    x = (x - 5000) * 0.03
    print("你应交的税为:",x,sep='')
elif x <= 12000:
    x = (x - 5000) * 0.1 - 210
    print("你应交的税为:",x,sep='')
elif x <= 25000:
    x = (x - 5000) * 0.2 - 1410
    print("你应交的税为:",x.sep='')
elif x <= 35000:
    x = (x - 5000) * 0.25 - 2660
    print("你应交的税为:",x,sep='')
elif x <= 55000:
    x = (x - 5000) * 0.3 - 4410
    print("你应交的税为:",x,sep='')
elif x <= 80000:
    x = (x - 5000) * 0.35 - 7160
    print("你应交的税为:",x,sep='')
else:
    x = (x - 5000) * 0.45 - 15160
    print("你应交的税为:",x,sep='')

isdkz 发表于 2023-11-21 21:41:27

在Python中,if-elif-else语句中的条件表达式不能包含赋值操作。在你的代码中,当你尝试在条件语句中使用 x = (x - 5000) * 0.03这样的赋值表达式时,会导致报错。

为了解决这个问题,你可以将赋值和条件判断分开来。你可以先计算税额,然后根据税额的大小进行打印。下面是修改后的代码:

x = input("请输入总工资:")
x = int(x)

tax = 0
if x < 5000:
    print("无需扣税")
elif x < 8000:
    tax = (x - 5000) * 0.03
elif x <= 12000:
    tax = (x - 5000) * 0.1 - 210
elif x <= 25000:
    tax = (x - 5000) * 0.2 - 1410
elif x <= 35000:
    tax = (x - 5000) * 0.25 - 2660
elif x <= 55000:
    tax = (x - 5000) * 0.3 - 4410
elif x <= 80000:
    tax = (x - 5000) * 0.35 - 7160
else:
    tax = (x - 5000) * 0.45 - 15160

print("你应交的税为:", tax, sep='')


这样,你就可以避免在条件表达式中进行赋值操作,同时正确计算并打印税额。

一条正弦 发表于 2023-11-21 21:47:52

本帖最后由 一条正弦 于 2023-11-21 21:49 编辑

isdkz 发表于 2023-11-21 21:41
在Python中,if-elif-else语句中的条件表达式不能包含赋值操作。在你的代码中,当你尝试在条件语句中使用 x ...

那为啥有时候可以有时候可以有时候又不行呢?在以后的学习中会有解释吗?

一条正弦 发表于 2023-11-21 21:56:36

isdkz 发表于 2023-11-21 21:41
在Python中,if-elif-else语句中的条件表达式不能包含赋值操作。在你的代码中,当你尝试在条件语句中使用 x ...

这个为啥是可以的,而且能运行

x = input("请输入今年的利润:")
x = int(x)

if x <= 100000:
    x = x * 0.1
    print("应发放的奖金总数是:",x,sep='')
elif x <= 200000:
    x = 100000 * 0.1 + (x - 100000) * 0.075
    print("应发放的奖金总数是:",x,sep='')
elif x <= 400000:
    x = 100000 * 0.1 + 100000 * 0.075 + (x - 200000) * 0.05
    print("应发放的奖金总数是:",x,sep='')
elif x <= 600000:
    x = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (x - 400000) * 0.03
    print("应发放的奖金总数是:",x,sep='')
elif x <= 1000000:
    x = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (x - 600000) * 0.015
    print("应发放的奖金总数是:",x,sep='')
else:
    x = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (x - 1000000) * 0.01
    print("应发放的奖金总数是:",x,sep='')
页: [1]
查看完整版本: 刚学了循环语句,使用if elif 循环的时候,系统报错说表达式不能包含赋值