我一直在尝试解决我班上的这个问题,但是我似乎数学不正确。
使用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 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']:
字符串在不为null时始终为true,因此if employstate == 'California' or 'Neveda'
等于if usedstate =='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在您的情况下有效。