используя список в python, если заявления - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь закодировать функцию, которая дает пользователю результаты на основе ввода. Таким образом, в основном, моя функция должна делать так, чтобы пользователь вводил значения для дня и, исходя из этого, продолжал спрашивать у пользователя его имя. Если хотя бы один из ответов не соответствует требуемому значению, я хочу, чтобы в моем коде отображалась неверная запись. Мой код:

days=[monday, tuesday, wednesday, thursday, friday, saturday, sunday]
def my_function():
    for items in days:
        day=input('what is the day')
        if input==items:
            print('okay')
            for stuff in names:
            name= input("what is your name?")
            if input==stuff:
                print('great')
            else:
                print('invalid entry')  
        else:
            print('invalid entry')

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

Ответы [ 3 ]

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

Вам, вероятно, следует провести рефакторинг, чтобы у вас была функция многократного использования, чтобы пользователь мог выбирать из списка.


def input_choice(prompt, choices):
    while True:
        response = input(prompt)
        if response in choices:
            return response  # bail out from the infinite loop
        print("invalid entry, try one of %s" % choices)


days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]

day = input_choice("what is the day?", days)
name = input("what is your name?")
print("hi %s, you chose the day %s" % (name, day))
1 голос
/ 23 апреля 2020

замените

if input==items:

следующим:

if day == items:

и замените это:

if input==stuff:

следующим:

if name == staff:
1 голос
/ 23 апреля 2020
if input==items:

Это должно быть:

if day==items:

Сравнение input, которое является функцией , со строкой не имеет никакого смысла.

Smae проблема с вашим следующим if.

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