所以基本原理是,我试图让一个用户输入他们的年薪,然后程序会运行一组if语句,然后返回他们所处的税级,从他们的年薪中减去金额,返回他们的总收入。主要的问题是,它将运行正确的金额为0-9525美元,但一旦你跳到12%和22%,它并没有使他们的。比如,如果你输入100000美元,它只会从中扣除12%,而它应该扣除24%。以下是当前形式的Python代码:
#Takes someone's yearly salary
yearlySalary = eval(input("Please enter your yearly salary: "))
if(yearlySalary < 9525):
tax = yearlySalary * .10
yearlySalary = yearlySalary-tax
elif(yearlySalary > 9526 && yearlySalary < 38700):
tax = yearlySalary * .12
yearlySalary = yearlySalary-tax
elif(range (38701, 82500)):
tax = yearlySalary * .22
yearlySalary = yearlySalary-tax
elif(range (82501, 157500)):
tax = yearlySalary * .24
yearlySalary = yearlySalary-tax
elif(range(157501, 200000)):
tax = yearlySalary * .32
yearlySalary = yearlySalary-tax
elif(range(200001, 500000)):
tax = yearlySalary * .35
yearlySalary = yearlySalary-tax
elif(yearlySalary > 500001):
tax = yearlySalary * .37
yearlySalary = yearlySalary-tax
这里有一些关于税级如何工作的问题;税级应该以相反的顺序排列,以便首先抓住最高的税级,并且只有超过税级的金额才应该按该金额征税。你知道吗
另外,在您的示例中,
elif(range (82501, 157500)):
不会捕获年薪=100000,因为else语句没有断言年薪是否在该范围内。你知道吗由于使用了不正确的“AND”运算符,它被捕获在12%中:使用
and
而不是&&
。你知道吗使用^{} :
yearlySalary
是装箱的,没有混乱的代码,如:yearlySalary > 9526 & yearlySalary < 38700
elif(yearlySalary in range (38701, 82500))
.digitize
的工作原理是找到bins
的索引,其中income
落在其中。给定索引,在tax_per
中找到相应的值。你知道吗bin_
用作变量,因为bin
是一个内部python函数,我们不会覆盖内部函数。你知道吗输出:
使用
if - elif - else
:你必须改变你的
elif
,比如:想知道你的年薪是否在这个范围内
相关问题 更多 >
编程相关推荐