已要求我编写一个代码,询问用户3个问题,并且用户必须输入“是”或“否”答案,然后,如果用户应接听电话,则将输出响应。第一个问题询问用户是否正在睡觉,如果用户输入“是”,则输出将为“不回答”,如果输入为“否”,则输出将询问是否为妈妈打来。如果答案为“是”,则输出为答案,“否”,它将询问是否是早晨。如果输入为“是”,则输出为“不回答”,如果答案为“否”,则为“答案”。 这是我为此创建的代码,但是当询问用户是否处于睡眠状态时输入“ yes”时,我收到有关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")
答案 0 :(得分:0)
问题是,如果您在第一阶段回答“是”,则从不分配stage2。
看看您的if语句的结构。仅当stage =='no'时才分配stage2,但最后检查它,而不管先前的选择是什么。您需要以仅在右侧分支中检查阶段2的方式来更改结构。
if stage1 == 'no':
stage2 = input()
if stage2 == 'no':
#do step 3 as well
else:
#end reached
else:
#end reached