无法使用 for 循环解决此分配



我一直在努力解决班上的这个问题,但我的数学似乎做不好。

使用For。。循环,编写一个程序来获取5名员工的姓名、工资和状态。计算每个员工的联邦税、州税和净工资。

statetax = 0
fedtax = 0
employsalary = 0
netsalary = 0
for people in range(5):
employname = input("Please enter employee name: ")
employsalary = int(input("Please enter employee salary: "))
employstate = input("Please enter employee state: ")
if employsalary >= 100000:
fedtax = (employsalary * 20) / 100
else: # employsalary < 100000            
fedtax = (employsalary * 15) / 100
if employstate == 'California' or 'Neveda' or 'Arizona' or 'Washington':
statetax = (employsalary * 10) / 100
elif employstate == 'Texas' or 'NewMexico' or 'Alabama':
statetax = (employsalary * 9) / 100
elif employstate == 'NewYork' or 'Illinois' or 'Wisconsin' or 'Delaware':
statetax = (employsalary * 8) / 100
else:
statetax = (employsalary * 12) / 100
netsalary = (employsalary - fedtax - statetax)
print(employname + ' federal tax is: ' +str(fedtax))
print(employname + ' state tax is: ' +str(statetax))
print(employname + ' net salary is: ' +str(netsalary))

由于某种原因,当两种不同的报表中的就业工资值乘以8和9时,计算是不正确的,我不明白为什么。我希望我解释对了。x_x

每个if状态都应该以以下方式更改。

if employstate == 'California' or 'Neveda' or 'Arizona' or 'Washington':更改为

if employstate == 'California' or employstate == 'Neveda' or employstate == 'Arizona' or employstate == 'Washington':

或者,这是另一种选择。

if employstate in ['California', 'Neveda', 'Arizona', 'Washington']:

字符串不为空时始终为true,因此if employstate == 'California' or 'Neveda'等于if employstate == 'California'

参考此

statetax = 0
fedtax = 0
employsalary = 0
netsalary = 0
for people in range(5):
employname = input("Please enter employee name: ")
employsalary = int(input("Please enter employee salary: "))
employstate = input("Please enter employee state: ")
if employsalary >= 100000:
fedtax = (employsalary * 20) / 100
else:
employsalary < 100000
fedtax = (employsalary * 15) / 100
if (employstate == 'California') or (employstate == 'Neveda') or (employstate == 'Arizona') or (employstate == 'Washington'):
statetax = (employsalary * 10) / 100
elif (employstate == 'Texas') or (employstate == 'NewMexico') or (employstate == 'Alabama'):
statetax = (employsalary * 9) / 100
elif (employstate == 'NewYork') or (employstate == 'Illinois') or (employstate == 'Wisconsin') or (employstate == 'Delaware'):
statetax = (employsalary * 8) / 100
else:
statetax = (employsalary * 12) / 100
netsalary = (employsalary - fedtax - statetax)
print(employname + ' federal tax is: ' +str(fedtax))
print(employname + ' state tax is: ' +str(statetax))
print(employname + ' net salary is: ' +str(netsalary))

A==B或C或D不是有效的语法
A==B或A==C或A==D在您的情况下有效。

最新更新