我想设计一个受流程图启发的“调查”,但我不明白为什么它不起作用。我想要没有包装的简单物品,因为我还没有把它们包裹起来。
应如何工作:
Q1-输入为是-> Q2-输入为-Q3->输入是-...-Q9-输入为-> Q10
Q1-输入为否->中断
第一季度-可能输入->重新第一季度
当我当前输入与yes或no不同的内容时,它从开头(Q1)开始。.我可以让它在所有问题中重复IF语句,直到输入为yes或no吗?
while True:
x = input ('question_text' )
if x.lower () == 'yes':
x = input ( 'question2_text' )
if x.lower () == 'yes':
x = input ( 'question3_text' )
if x.lower () == 'yes':
ETC...
if x.lower () == 'no':
print ( 'No.' )
break
else:
print ('ONLY YES/NO')
if x.lower () == 'no':
print ( 'No.' )
break
else:
print ('ONLY YES/NO')
if x.lower () == 'no':
print ( 'No.' )
break
else:
print ('ONLY YES/NO')
答案 0 :(得分:0)
如果不对当前结构上的所有情况重复相同的else语句,将无法做到这一点。
但是,您可以对输入使用一个函数,该函数将反复对其求值。
例如:
def yes_or_no_question(question):
answer = input(question).upper()
if answer in ["YES", "NO"]:
print(answer)
return answer == "YES"
print("Only YES or NO")
return yes_or_no_question(question)
while True:
if not yes_or_no_question('question_text'):
break
if not yes_or_no_question('question2_text'):
break
print("Yes to all, starting again!")
编辑
您可以根据需要嵌套和组合尽可能多的东西。
while True:
if yes_or_no_question('question_text'):
print("Something for question 1 in case of yes")
# you can add any logic here, including another question
else:
# you can add any logic here, including another question
print("No for question 1")
if yes_or_no_question('Question for NO on first question'):
print("Yes for nested on Q1 No")
else:
print("No for nested on Q1 no")
break
if not yes_or_no_question('question2_text'):
break
print("Yes to all, starting again!")
答案 1 :(得分:0)
我喜欢luigibertaco的第一个回答,但也许您正在寻找与众不同的东西。
尝试使用您的格式,因此我将每个问题放入while循环中,直到输入“是”或“否”之前,它将一直询问相同的问题。
stop_while = True
while stop_while:
q_one = True
while q_one:
x = input('question_text')
if x.lower() == 'yes':
break
if x.lower() == 'no':
q_one = False
if q_one:
pass
else:
break
q_two = True
while q_two:
x2 = input('question2_text')
if x2.lower() == 'yes':
break
if x2.lower() == 'no':
q_two = False
stop_while = False
stop_while = False