鱼C论坛

 找回密码
 立即注册
查看: 1365|回复: 3

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

[复制链接]
发表于 2023-11-21 21:41:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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='')
最佳答案
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='')

这样,你就可以避免在条件表达式中进行赋值操作,同时正确计算并打印税额。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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='')

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

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +3 收起 理由
一条正弦 + 3 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-11-21 21:47:52 | 显示全部楼层
本帖最后由 一条正弦 于 2023-11-21 21:49 编辑
isdkz 发表于 2023-11-21 21:41
在Python中,if-elif-else语句中的条件表达式不能包含赋值操作。在你的代码中,当你尝试在条件语句中使用 x ...


那为啥有时候可以有时候可以有时候又不行呢?在以后的学习中会有解释吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表