我无法理解这个(函数?)是如何工作的

时间:2016-08-02 22:09:51

标签: python

我是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 ,所以我迷失在这里,有人可以解释一下吗?

4 个答案:

答案 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语句而不是ifelse,所以当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%税。

工资税是这种税的总和。