#python #if-statement
#python #if-statement
Вопрос:
У меня возникли проблемы с сбросом и операцией if для захвата правильного ввода в команду:
Если вы выберете «2», если он снова спросит вас. Если вы ответите «L», это будет зафиксировано как допустимая команда, однако переменная «Letter» все равно будет сохранена как исходный ввод «2». Как мне сбросить первую команду, чтобы выполнить вторую?
# Letters is captured in a list A-Z
def choose_letter(question):
Letter = input('choose a letter:')
if Letter not in Letters:
print('Please choose a valid Letter. A-Z.')
choose_letter(question)
else:
return Letter
Комментарии:
1. замените вызов на
choose_letter(question)
сreturn choose_letter(question)
Ответ №1:
Вы должны вернуться choose_letter
, иначе рекурсивный вызов ничего не принесет.
# Letters is captured in a list A-Z
def choose_letter(question):
Letter = input('choose a letter:')
if Letter not in Letters:
print('Please choose a valid Letter. A-Z.')
return choose_letter(question)
else:
return Letter
Также обратите внимание, что, возможно, было бы лучше переименовать вашу переменную Letter, скажем, в userInput , поскольку это еще не буква. И вместо использования списка вы могли бы рассмотреть возможность использования регулярного выражения, чтобы выяснить, действительно ли входные данные являются буквой.
Комментарии:
1. любая причина, по которой это будет работать в python tutor, но не работает в repl.it ? Это работает в моем симуляторе в python tutor, но все равно выдает ошибку в repl.it
2. Или буквы могут быть строкой