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

时间:2016-11-08 01:01:37

标签: python loops

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

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)):部分是计算第一个间隔的税收括号。基本上我正在计算区间中每个美元的间隔税率,并将其添加到totalTaxes。效率不高,但这就是我的全部。

顺便错误是ValueError: too many values to unpack

1 个答案:

答案 0 :(得分:0)

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循环。你的逻辑是什么?