Не удается решить это назначение с помощью цикла for - PullRequest
0 голосов
/ 08 апреля 2020

Я пытался решить эту проблему в своем классе, но я не могу понять математику правильно.

Используя For .. l oop, напишите программу для получения имени, оклада и штата 5 сотрудников. Рассчитайте федеральный налог, налог штата и зарплату net для каждого работника.

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

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Каждое состояние 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']:

Строка всегда верна, когда она не равна нулю, и, таким образом, if employstate == 'California' or 'Neveda' равна if employstate == 'California'.

0 голосов
/ 08 апреля 2020

См. Это

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 является действует в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...