Я новичок в Python, с небольшим фоном в C. Я хотел бы настроить цикл while с помощью try - кроме - else. Я успешно сделал это при попытке проверить тип данных (используя кроме: ValueError), например, запросив у пользователя целое число. Однако для этой программы пользователь вводит строку, и программе необходимо проверить эту строку по списку строк, и, если ее там нет, снова спросить пользователя. Мой код до сих пор выполняется, но независимо от ввода пользователя цикл прерывается. Вот оно сейчас:
senses = ["touch", "smell", "sight", "hearing", "taste"]
while True:
try:
choice = input("What is your favorite sense? ")
except:
if choice not in senses:
print("Sorry, I don't think that's a sense")
#try again, return to start of loop
continue
else:
break
Первоначально мой код выглядел следующим образом, и он работал, но существует проблема избыточности с методом ввода:
senses = ["touch", "smell", "sight", "hearing", "taste"]
choice = input("What is your favorite of the 5 human senses:")
while choice not in senses:
choice =input("What is your favorite of the 5 human senses")