Поскольку, кроме проверок на ошибки, вы не можете легко включить тот факт, что answer
равно 1 или 2. Вместо этого просто выполните еще одну проверку перед break
:
while True:
try:
answer = int(input("Press 1 to see protein ID in console \nPress 2 to export protein CSV list \nChoose="))
except ValueError:
print("Sorry, not what I was expecting \nTry again")
continue
else: # Can't use elif on try...catch if I remember well
if answer == 1 or answer == 2: # Check answer is 1 or 2. Otherwise, the loop continues
break
Обратите внимание, что использование continue
и else
вместе здесь бесполезны.
Кстати, я бы предпочел написать ваш код следующим образом, я считаю его более аккуратным:
while True:
try:
answer = int(input("Press 1 to see protein ID in console \nPress 2 to export protein CSV list \nChoose="))
if answer == 1 or answer == 2:
break
except ValueError:
pass
print("Sorry, not what I was expecting \nTry again")
Что это делает? чтобы остановить l oop, только если answer
равно 1 или 2, и продолжить l oop в противном случае, а затем позже в l oop вы напишете сообщение об ошибке. (except ValueError: pass
позволяет продолжить l oop, как если бы ValueError
не было).