无法让 python 跟随第一个 if-elif-else 语句
Cant get python to follow the first if-elif-else statement
当我输入 0 时,此代码遵循联名账户备案而不是单身账户,我无法理解。是编码错了吗?我错过了什么吗?我无法弄清楚如何解决它。谢谢!
问题描述:
美国联邦个人所得税是根据
申报状态和应纳税所得额。申请状态有四种:单身
申报人和已婚人士共同申报。税率每年都不同。 Table
3.2 显示了 2009 年的税率。比方说,如果你是单身且有应税收入
收入 10,000 美元,前 8,350 美元按 10% 征税,其余 1,650 美元
税率为 15%。所以,你的税是 1,082.5 美元。
Table 1
2009 U.S。联邦个人税率
边缘
税率 单身 已婚 共同申报或
合格寡妇
10% $0 – $8,350 $0 – $16,700
15% $8,351– $33,950 $16,701 – $67,900
25% $33,951 – $82,250 $67,901 – $137,050
28% $82,251 – $171,550 $137,051 – $208,850
33% $171,551 – $372,950 $208,851 – $372,950
35% $372,951+ $372,951+
你要编写一个程序来计算个人所得税。你的程序应该
提示用户输入备案状态和应税收入并计算税金。输入 0
单身申报者和 1 名已婚联合申报者。
#filings
Single = 0
Joint = 1
#amount taxed for singles
st1 = 8350
st2 = 25599
st3 = 48299
st4 = 89299
st5 = 201399
#filing brackets for singles
s1 = 8350
s2 = 33950
s3 = 82250
s4 = 171550
s5 = 372950
#amount taxed for joint
jt1 = 16700
jt2 = 51199
jt3 = 69149
jt4 = 71799
jt5 = 164099
#filings brackets for joint
j1 = 16700
j2 = 67900
j3 = 137050
j4 = 208850
j5 = 372950
#percents
p1 = 10/100
p2 = 15/100
p3 = 25/100
p4 = 28/100
p5 = 33/100
p6 = 35/100
#input of income and filings
filing = input('Enter the filing status:')
income = float(input('Enter the taxable income:'))
if filing==Single:
if income<=s1:
tax = income * p1
format_tax = "{:.2f}".format(tax)
print('Tax is', format_tax)
elif income>s1 and income<=s2:
i1 = income-st1
i2 = st1*p1
i3 = i1*p2
tax = i3 + i2
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s2 and income<=s3:
i1 = income - st1
i2 = i1 - st2
tax1 = st1*p1
tax2 = st2*p2
tax3 = i2*p3
tax = tax1+tax2+tax3
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s3 and income<=s4:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = i3*p4
tax=tax1+tax2+tax3+tax4
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s4 and income<=s5:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
i4 = i3 - st4
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = st4*p4
tax5 = i4*p5
tax=tax1+tax2+tax3+tax4+tax5
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
i4 = i3 - st4
i5 = i4 - st5
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = st4*p4
tax5 = st5*p5
tax6 = i5*p6
tax=tax1+tax2+tax3+tax4+tax5+tax6
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
if income <= j1:
tax = income * p1
format_tax = "{:.2f}".format(tax)
print('Tax is', format_tax)
elif income >j1 and income<=j2:
i1 = income-jt1
i2 = jt1*p1
i3 = i1*p2
tax = i3 + i2
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j2 and income<=j3:
i1 = income - jt1
i2 = i1 - jt2
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = i2*p3
tax = tax1+tax2+tax3
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j3 and income<=j4:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = i3*p4
tax=tax1+tax2+tax3+tax4
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j4 and income<=j5:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
i4 = i3 - jt4
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = jt4*p4
tax5 = i4*p5
tax=tax1+tax2+tax3+tax4+tax5
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
i4 = i3 - jt4
i5 = i4 - jt5
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = jt4*p4
tax5 = jt5*p5
tax6 = i5*p6
tax=tax1+tax2+tax3+tax4+tax5+tax6
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
你的 input() 调用 returns 一个字符串,而不是一个整数。
filing = input('Enter the filing status:')
通过比较 filing
和 Single
,您将“1”与 1 进行比较,它们具有不同的类型和不同的值。由于变量具有不同的值,您的 if 语句评估为 false,并且执行了您的 else 语句。您可能打算做的是类似以下的事情。
filing = int(input('Enter the filing status:'))
这会将字符串转换为整数,让您可以直接将其与 Single
进行比较。
您可以在 python here
中了解有关整数输入的更多信息
当我输入 0 时,此代码遵循联名账户备案而不是单身账户,我无法理解。是编码错了吗?我错过了什么吗?我无法弄清楚如何解决它。谢谢!
问题描述: 美国联邦个人所得税是根据 申报状态和应纳税所得额。申请状态有四种:单身 申报人和已婚人士共同申报。税率每年都不同。 Table 3.2 显示了 2009 年的税率。比方说,如果你是单身且有应税收入 收入 10,000 美元,前 8,350 美元按 10% 征税,其余 1,650 美元 税率为 15%。所以,你的税是 1,082.5 美元。 Table 1 2009 U.S。联邦个人税率 边缘 税率 单身 已婚 共同申报或 合格寡妇 10% $0 – $8,350 $0 – $16,700 15% $8,351– $33,950 $16,701 – $67,900 25% $33,951 – $82,250 $67,901 – $137,050 28% $82,251 – $171,550 $137,051 – $208,850 33% $171,551 – $372,950 $208,851 – $372,950 35% $372,951+ $372,951+ 你要编写一个程序来计算个人所得税。你的程序应该 提示用户输入备案状态和应税收入并计算税金。输入 0 单身申报者和 1 名已婚联合申报者。
#filings
Single = 0
Joint = 1
#amount taxed for singles
st1 = 8350
st2 = 25599
st3 = 48299
st4 = 89299
st5 = 201399
#filing brackets for singles
s1 = 8350
s2 = 33950
s3 = 82250
s4 = 171550
s5 = 372950
#amount taxed for joint
jt1 = 16700
jt2 = 51199
jt3 = 69149
jt4 = 71799
jt5 = 164099
#filings brackets for joint
j1 = 16700
j2 = 67900
j3 = 137050
j4 = 208850
j5 = 372950
#percents
p1 = 10/100
p2 = 15/100
p3 = 25/100
p4 = 28/100
p5 = 33/100
p6 = 35/100
#input of income and filings
filing = input('Enter the filing status:')
income = float(input('Enter the taxable income:'))
if filing==Single:
if income<=s1:
tax = income * p1
format_tax = "{:.2f}".format(tax)
print('Tax is', format_tax)
elif income>s1 and income<=s2:
i1 = income-st1
i2 = st1*p1
i3 = i1*p2
tax = i3 + i2
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s2 and income<=s3:
i1 = income - st1
i2 = i1 - st2
tax1 = st1*p1
tax2 = st2*p2
tax3 = i2*p3
tax = tax1+tax2+tax3
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s3 and income<=s4:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = i3*p4
tax=tax1+tax2+tax3+tax4
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>s4 and income<=s5:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
i4 = i3 - st4
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = st4*p4
tax5 = i4*p5
tax=tax1+tax2+tax3+tax4+tax5
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
i1 = income - st1
i2 = i1 - st2
i3 = i2 - st3
i4 = i3 - st4
i5 = i4 - st5
tax1 = st1*p1
tax2 = st2*p2
tax3 = st3*p3
tax4 = st4*p4
tax5 = st5*p5
tax6 = i5*p6
tax=tax1+tax2+tax3+tax4+tax5+tax6
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
if income <= j1:
tax = income * p1
format_tax = "{:.2f}".format(tax)
print('Tax is', format_tax)
elif income >j1 and income<=j2:
i1 = income-jt1
i2 = jt1*p1
i3 = i1*p2
tax = i3 + i2
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j2 and income<=j3:
i1 = income - jt1
i2 = i1 - jt2
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = i2*p3
tax = tax1+tax2+tax3
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j3 and income<=j4:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = i3*p4
tax=tax1+tax2+tax3+tax4
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
elif income>j4 and income<=j5:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
i4 = i3 - jt4
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = jt4*p4
tax5 = i4*p5
tax=tax1+tax2+tax3+tax4+tax5
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
else:
i1 = income - jt1
i2 = i1 - jt2
i3 = i2 - jt3
i4 = i3 - jt4
i5 = i4 - jt5
tax1 = jt1*p1
tax2 = jt2*p2
tax3 = jt3*p3
tax4 = jt4*p4
tax5 = jt5*p5
tax6 = i5*p6
tax=tax1+tax2+tax3+tax4+tax5+tax6
format_tax = '{:.2f}'. format(tax)
print('Tax is', format_tax)
你的 input() 调用 returns 一个字符串,而不是一个整数。
filing = input('Enter the filing status:')
通过比较 filing
和 Single
,您将“1”与 1 进行比较,它们具有不同的类型和不同的值。由于变量具有不同的值,您的 if 语句评估为 false,并且执行了您的 else 语句。您可能打算做的是类似以下的事情。
filing = int(input('Enter the filing status:'))
这会将字符串转换为整数,让您可以直接将其与 Single
进行比较。
您可以在 python here
中了解有关整数输入的更多信息