Как вернуться к первому оператору if, если нет допустимых вариантов
Как я могу переместить Python в начало оператора if, если ни одно условие не выполняется правильно.
У меня есть базовый оператор if / else, подобный этому:
print "pick a number, 1 or 2"
a = int(raw_input("> ")
if a == 1:
print "this"
if a == 2:
print "that"
else:
print "you have made an invalid choice, try again."
Я хочу предложить пользователю сделать другой выбор для этого оператора if без необходимости перезагрузки всей программы, но я очень новичок в Python и не могу найти ответ в интернете где угодно.
3 ответов
довольно распространенный способ сделать это-использовать while True
цикл, который будет работать бесконечно, с break
операторы для выхода из цикла, когда вход действителен:
print "pick a number, 1 or 2"
while True:
a = int(raw_input("> ")
if a == 1:
print "this"
break
if a == 2:
print "that"
break
print "you have made an invalid choice, try again."
здесь также есть хороший способ ограничить количество попыток, например:
print "pick a number, 1 or 2"
for retry in range(5):
a = int(raw_input("> ")
if a == 1:
print "this"
break
if a == 2:
print "that"
break
print "you have made an invalid choice, try again."
else:
print "you keep making invalid choices, exiting."
sys.exit(1)
вы можете использовать рекурсивную функцию
def chk_number(retry)
if retry==1
print "you have made an invalid choice, try again."
a=int(raw_input("> "))
if a == 1:
return "this"
if a == 2:
return "that"
else:
return chk_number(1)
print "Pick a number, 1 or 2"
print chk_number(0)
используйте цикл while.
print "pick a number, 1 or 2"
a = None
while a not in (1, 2):
a = int(raw_input("> "))
if a == 1:
print "this"
if a == 2:
print "that"
else:
print "you have made an invalid choice, try again."