老师打错字了,把ys打成了ya,但是第一个if下的ys变量没打错,输入8000后刚好满足第一个if的条件,后面错误的代码没执行,所以能正常运行
![]() |
迷路的小羊糕
展开
|
![]() |
我叫老马呀
展开
这程序有问题,纳税金额是阶梯制度的。比如工资扣除五险后为13000元,纳税为3000*0.03+(5000*0.1-210)。他这个程序相当于直接8000*0.1-210,是错的,计算8000及以下的税。每个阶梯的税率都不一样。 ![]() 夏林杰
展开
仔细看前面表格的计算方式,老师的计算方式没问题,这个速算扣除数就是为了方便计算才这样设置的。3000*0.03+5000*0.1=8000*0.1-210,或者看应纳税所得额(不含税),找一个临界数,计算下就知道了 |
![]() |
老虎学编程
展开
请输入你的税前工资:5400
请输入社保扣除金额:400
您应纳税金额: -210.0 到手工资: 5210.0
哈哈哈,似乎并不完整呢[笑哭] ![]() seacreator
展开
@ wujian3 确实是错了,第9行"elif ya<=12000:"这里条件不完整,抛开打错的字不说,这里执行下去就会出现这兄弟说的情况,应该为"elif ys>3000 and ys<=12000:“,相应的,后面每一行elif的条件都要加上 |
![]() |
榆木可雕
展开
|
![]() |
T190118fw
展开
|
![]() |
QQbfkd0vc8r
展开
before=float(input("请输入你的税前工资:"))
m1=float(input("请输入社保扣除金额:"))
m2=float(input("请输入专项附加扣除金额:"))
ss=0#纳税金额
ys=before-m1-m2-5000#应纳税所得额
if ys<=36000 and ys>0:
ss=ys*0.03-0
elif ys<=144000 and ys>36000:
ss=ys*0.1-2520
elif ys<=300000 and ys>144000:
ss=ys*0.2-16920
elif ys<=420000 and ys>300000:
ss=ys*0.25-31920
elif ys<=660000 and ys>420000:
ss=y |
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。