Получение ошибки трассировки при выполнении потоковой диаграммы - PullRequest
0 голосов
/ 12 октября 2018

Меня попросили создать код, который задает пользователю 3 вопроса, и пользователь должен ввести либо ответ «да», либо «нет», который затем выводит ответ, если пользователь должен ответить на телефонный звонок или нет,Первый вопрос спрашивает пользователя, спят ли они, если пользователь вводит «да», вывод будет «не отвечать», если ввод «нет», вывод будет спрашивать, звонит ли он маме.Если ответ «да», выводом будет «нет», и он спросит, наступило ли утро.Если это вход «да», то вывод будет «не отвечать», если ответ «нет», это будет «ответ».Вот мой код, который я создал для этого, однако я получаю сообщение об ошибке отслеживания касательно stage2, когда я задаю «да», когда его спрашивают, спит ли пользователь.Как бы я это исправить?(Python)

print("Your Cell Phone is ringing")

print("Are you asleep?")
stage= input()
if stage == 'yes':
    print("Don't Answer the phone")
elif stage =='no':
    print("Is Mom calling?")


if  stage =='no':
    stage2= input()
    if stage2 =='no':
        print("Is it morning?")
else:
    print("Answer the phone")

if stage2 =='no':
    stage3= input()
    if stage3 =='no':
        print("Answer the phone")
    else:
        print("Don't answer the phone")

1 Ответ

0 голосов
/ 12 октября 2018

Проблема в том, что stage2 никогда не назначается, если вы отвечаете «да» на первом этапе.

Посмотрите на структуру ваших операторов if.stage2 назначается, только если stage == 'no', но в конце проверяется независимо от предыдущего выбора.Вам нужно изменить свою структуру таким образом, чтобы этап 2 отмечался только в правой ветви.

if stage1 == 'no':
  stage2 = input()
  if stage2 == 'no':
    #do step 3 as well
  else:
    #end reached
else:
  #end reached
...