我是Python的新手,我正在阅读一本入门书。代码不是用英文写的,所以我尽力翻译,希望你们理解。 它有这个练习,我们从用户工资中计算税收:
salary = float(input("Enter your salary to taxes calculation: "))
base = salary
taxes = 0
if base > 3000:
taxes = taxes + ((base - 3000) * 0.35)
base = 3000
if base > 1000:
taxes = taxes + ((base - 1000) * 0.20)
我的问题是当输入大于3000时,例如,如果我运行薪水为5000的代码,结果将是1100.但是当我在计算器上执行“相同”数学时,结果是700 ,所以我迷失在这里,有人可以解释一下吗?
答案 0 :(得分:5)
请注意,如果工资为5000,控件将转到if语句。因此它从第一个开始是700,从第二个开始是400,因此答案是700 + 400。这也是有道理的,因为税收计算主要用括号括起来,并且不是薪水的百分比。
答案 1 :(得分:3)
好的,让我们以5000的例子来介绍它。
salary = float(input("Enter your salary to taxes calculation: "))
base = salary
# base = 5000
taxes = 0
if base > 3000: # base is larger than 3000, so we enter the if statement
taxes = taxes + ((base - 3000) * 0.35)
# taxes = 0 + ((5000 - 3000) * 0.35)
# taxes = 0 + 700
# taxes = 700
base = 3000 # base is set to 3000
if base > 1000: # base was set to 3000 in the line above, so we enter the if statement
taxes = taxes + ((base - 1000) * 0.20)
# taxes = 700 + ((3000 - 1000) * 0.20), remember taxes is already 700 from above
# taxes = 700 + 400
# taxes = 1100
因为它是两个if
语句而不是if
和else
,所以当base
设置为大于3000时,我们会评估这两个语句。我希望这有帮助。< / p>
答案 2 :(得分:1)
它流向第二个函数
所以如果我分数:
Salary = 5000
base = 5000
taxes = 0
if 5000 > 3000:
taxes = 0 + ((5000- 3000) * 0.35) # = 700
base = 3000
if 3000 > 1000:
taxes = 700 + ((3000 - 1000) * 0.20) # = 1100
答案 3 :(得分:0)
这是一个经济的等式,计算工资的每个部分的税收。 程序是这样的:
3000
,则计算此部分工资的35%税。1000
(且小于3000
),则计算此部分工资的20%税。工资税是这种税的总和。