Я пытаюсь получить то, что я печатаю, и добавить его в список, чтобы распечатать как зарплату сотрудника. - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь составить список, который принимает ввод от пользователя и добавляет его в список, который будет напечатан позже, когда пользователь запрашивает его как часть моего финала в вступлении к классу python.должен быть калькулятором заработной платы

Я пытался создать пустой список с именем сотрудников и добавить распечатку к списку, но он не будет принимать пользовательский ввод

employees = []

while yes_no == 1:
    emp_name = str(input("please enter the employees name"))
    num1 = int(input("Please enter the hours you worked "))
    num2 = int(input("Please enter your hourly wage  "))
    print("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2, "$ per hour. Making your salary",
    num1 * num2, "$")
    employees.append("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2,
                     "$ per hour. Making your salary",
                     num1 * num2, "$")

    yes = int(input("If you would like to calculate more employees salaries yes or no "))
    emp_name = str(input("please enter the employees name"))
    num1 = int(input("Please enter the hours you worked "))
    num2 = int(input("Please enter your hourly wage  "))
    print("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2, "$ per hour. Making your salary"
    , num1 * num2, "$")
    employees.append(str("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2,
                     "$ per hour. Making your salary",
                     num1 * num2, "$"))
    yes_no = int(input("If you would like to calculate more employees salaries type 1 for yes or or type 0 for no "))

    if yes_no == 0:
        break

print("Thanks for using my calculator, ", name)

Я ожидалсписок должен быть заполнен входными данными, но все, что произошло, было то, что моя IDE сказала, что append ожидает 1 аргумент, и он получил 9.

1 Ответ

1 голос
/ 29 сентября 2019

Бит

employees.append("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2,
                 "$ per hour. Making your salary",
                 num1 * num2, "$")

пытается вызвать append с 9 различными частями данных (каждая разделена ,).Если вы думаете о том, как print берет несколько объектов, разделенных , с, и объединяет их, это поведение, специфичное для print и некоторых других функций.append не ведет себя так.

Вам необходимо отформатировать эти данные как одну строку. f-строк будет самым простым способом:

employees.append(f"Employee {emp_name} worked {num1} hours, and are paid {num2} $ per hour."
                 f"Making your salary {num1 * num2} $")

Теперь в список добавляется одна строка.


Также обратите внимание, что вынужно сделать аналогичное изменение для бита

employees.append(str("Employee", emp_name, "Worked ", num1, "hours, and are paid", num2,
                     "$ per hour. Making your salary",
                     num1 * num2, "$"))

str тоже не принимает столько аргументов.

Я бы посоветовал вам замедлиться и тестировать код по ходу работы.Написание массивных кусков, когда вы не уверены, что даже работает, просто вызовет у вас головную боль и помешает вашему обучению.

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