#python
#python
Вопрос:
Мне нужно, чтобы моя программа прерывалась, если пользователь вводит «нет». На данный момент программа не прерывается, и когда вводится ‘no’, попытка и исключение перезапускаются
while final_answer_check == True:
try:
final_answer = str(input("Do you want a copy of the answers?"))
if final_answer.lower() == "no":
final_answer_check = False
Я ожидал бы, что программа завершится, но она просто спрашивает: «Вам нужна копия ответов?» снова
Комментарии:
1. входные данные уже находятся в str
2. где ваш блок except?
3. О, и где цикл?
4. DirtyBit — Я удалил части except и loop, чтобы они вписывались в панель вопросов. спасибо за помощь
5. вы всегда должны публиковать фрагмент кода, который мог бы воспроизвести проблему, с которой вы столкнулись, посмотреть, поможет ли опубликованный мной ответ?
Ответ №1:
Продолжая комментарии, это должно сделать:
final_answer_check = True # a boolean flag
while final_answer_check: # while the flag is set to true
try:
final_answer = str(input("Do you want a copy of the answers?"))
if final_answer.lower() == "no":
final_answer_check = False
except:
pass
Редактировать:
Однако лучшим подходом могло бы быть использование бесконечного цикла с break
:
while True:
try:
final_answer = input("Do you want a copy of the answers?")
if final_answer.lower() == "no":
break
except:
pass
ВЫВОД:
Do you want a copy of the answers?no
Process finished with exit code 0
Ответ №2:
Сначала вам нужно определить переменную final_answer_check
и установить значение в True
. Если вы создаете свой код в блоке try...except
, вам нужно сделать его завершенным, а не только try
.
final_answer_check = True
while final_answer_check == True:
try:
final_answer = str(input("Do you want a copy of the answers?"))
if final_answer.lower() == "no":
final_answer_check = False
else:
final_answer_check = True
except:
print ("your another code should be here")