Я использую Python 3.1.3 и пытаюсь написать викторину, чтобы проверить свои знания имен элементов и соответствующих атомных номеров периодической таблицы, используя генераторы случайных чисел, чтобы выбрать, запрашивать ли у пользователя запросатомный номер или имя элемента и о каком элементе спрашивать.В настоящее время я пытаюсь проверить все пользовательские данные.Я успешно проверил числовые и алфавитные входные данные, но изо всех сил пытаюсь подтвердить опцию «да» или «нет» для повторного прохождения теста, принимая входные данные: «y» или «n».Ранее я пытался использовать несколько операторов IF и ELIF, чтобы определить, дал ли пользователь ввод, равный допустимым значениям ввода, но после поиска переполнения стека я изменил свой код так:
##Functions
def validating_y_or_n_only(a,b,c):
while b == 0:
if not a:
print("\n\tYou didnt enter anything.")
elif a in ["y","n"]:
b = 1
else :
print("\n\tYour input was invalid.")
print("\tOnly 'y' and 'n' are considered valid.\n")
print(c)
a = str(input("\tEnter 'y' for yes or 'n' for no: "))
return a
##Main Program
retake = "\n\tWould you like to re-take the quiz?"
print(retake)
replay_option = str(input("\tEnter 'y' for yes or 'n' for no: "))
replay_option = validating_y_or_n_only(replay_option,condition,retake)
Однако это создает бесконечный цикл и даже допустимые входные данные 'y' или 'n' или не принимаются.