Остановить программу от вывода остатка кода при вводе неверного номера - PullRequest
0 голосов
/ 07 октября 2019

Я хочу создать код, который выводит только один вопрос за раз.

У меня есть интерактивный код, который позволяет кому-то вводить определенные числа в диапазоне, т.е. "0-3".

Однако существует около 5 вопросов, которые побуждают пользователя ввести число.

Таким образом, если кто-то должен был ввести для Q1: «4», на выходе все равно будут отображаться следующие вопросы. ,Однако, если это произойдет, я хочу, чтобы оно показывало «Неверное число! Попробуйте еще раз».

Существует ли определенный код, чтобы предотвратить это?

У меня пока есть:

if inp == 0:

    out = "Beginner"

elif inp == 1:

    out = "Intermediate"

elif inp == 2:

    out = "Advanced"

else:

    f=1

    if f > 3:

        print('Invalid input!')

        return

(остаток кода с использованием return при необходимости)

1 Ответ

0 голосов
/ 07 октября 2019

Затем вы должны использовать цикл while и продолжать отображать вопрос, если пользователь не выбрал допустимый ввод:

def display_question(sentence,
                     choices=['Beginner', 'Intermediate', 'Advanced']):
    again = True

    while again:
        inp = input(sentence).strip()

        # Check if the user entered a digit
        if inp.isdigit():
            user_number = int(inp)

            if user_number >= 0 and user_number < len(choices):
                print("Your choice is {}".format(choices[user_number]))
                return choices[user_number]

        # If the input is not valid, display error message and retry
        print('Invalid input! Try again')
display_question('Make your choice (0: Beginner, 1: Intermediate, 2: Advanced): ')
...