循环的双变量(税务计算器)

2024-06-14 18:45:10 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试为逻辑实践创建税务计算器:

import sys

marital = sys.argv[1]
salary = sys.argv[2]

totalTaxes = 0

if marital == "single":

    tiers = [415050,413350,190150,91150,37650,9275]
    taxrates = [.35,.33,.28,.25,.15,.10]
    if salary > tiers[i]:
        for i, j in tiers, taxrates:
            for n in range(i-(i+1)):
                while n > tiers[i]:
                    totalTaxes += (n * .35)

当我查看它时,这对我来说是有意义的,但是for循环导致了一个错误。我以前见过双变量for循环,但不记得怎么做了。我是否以某种方式使用enumerateitertools?你知道吗

另外,我愿意接受任何关于如何减少嵌套循环数量的建议。我相信那是可行的。非常感谢您的帮助。你知道吗

为清楚起见,for n in range(i,i-(i+1)):部分是计算第一个时间间隔的税率等级。本质上,我是在计算区间内每一美元的税率,然后把它加到总税率中。效率不高,但我只有这些。你知道吗

顺便说一下,错误是ValueError: too many values to unpack


Tags: inforif错误sysrange逻辑salary
1条回答
网友
1楼 · 发布于 2024-06-14 18:45:10

for循环的主要问题是您误用了它。For i in a_list将迭代a_list中的每个项,并将项值填充到i(而不是索引)。另外,如果要在for循环中将两个列表组合在一起,应该使用zip。你知道吗

import sys

marital = sys.argv[1]
salary = sys.argv[2]

totalTaxes = 0

if marital == "single":

    tiers = [415050,413350,190150,91150,37650,9275]
    taxrates = [.35,.33,.28,.25,.15,.10]
    for tier, taxrate in zip(tiers, taxrates):
        ...

我不知道你在for循环里面做什么。range(i-(i+1))range(-1)相同,这意味着程序永远不会运行while循环。你的逻辑是什么?你知道吗

相关问题 更多 >