gpt4 book ai didi

python - 所得税计算python

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:13 24 4
gpt4 key购买 nike

如何制作范围为 70000 及以上的 for 循环?我正在为所得税做一个循环,当收入超过 70000 时,税率为 30%。我会做类似for income in range(income-70000)这样的事情吗?

好吧,起初我开发了一个没有使用循环的代码并且它工作得很好,但后来我被告知我需要在我的代码中加入一个循环。这就是我所拥有的,但使用 for 循环对我来说没有意义。有人可以帮助我吗?

def 税(收入):

for income in range(10001):
tax = 0
for income in range(10002,30001):
tax = income*(0.1) + tax
for income in range(30002,70001):
tax = income*(0.2) + tax
for income in range(70002,100000):
tax = income*(0.3) + tax
print (tax)

好的,所以我现在尝试使用 while 循环,但它没有返回值。告诉我你的想法。我需要根据收入计算所得税。前 10000 美元没有税。接下来的20000还有10%。接下来的40000还有20%。 70000以上为30%。

def 税(收入):

income >= 0
while True:
if income < 10000:
tax = 0
elif income > 10000 and income <= 30000:
tax = (income-10000)*(0.1)
elif income > 30000 and income <= 70000:
tax = (income-30000)*(0.2) + 2000
elif income > 70000:
tax = (income - 70000)*(0.3) + 10000
return tax

最佳答案

问:如何制作范围为 70000 及以上的 for 循环?

答:使用itertools.count()方法:

import itertools

for amount in itertools.count(70000):
print(amount * 0.30)

问:我需要根据收入计算所得税。前 10000 美元没有税。接下来的20000还有10%。接下来的40000还有20%。 70000以上为30%。

答: bisect module非常适合在范围内进行查找:

from bisect import bisect

rates = [0, 10, 20, 30] # 10% 20% 30%

brackets = [10000, # first 10,000
30000, # next 20,000
70000] # next 40,000

base_tax = [0, # 10,000 * 0%
2000, # 20,000 * 10%
10000] # 40,000 * 20% + 2,000

def tax(income):
i = bisect(brackets, income)
if not i:
return 0
rate = rates[i]
bracket = brackets[i-1]
income_in_bracket = income - bracket
tax_in_bracket = income_in_bracket * rate / 100
total_tax = base_tax[i-1] + tax_in_bracket
return total_tax

关于python - 所得税计算python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20130478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com