此功能的目的是检查用户的输入,确定它是否在列表中,如果没有,则告诉用户“选择一个给定的选项”。
问题在于它要求我输入两次。当我选择选项''接近出口门''它再次循环并要求输入,当我再次输入相同的选项时,我得到结果(这导致dead()函数没有复制到这里以保持这个简短)。尝试了几件事,比如添加一个关闭循环的条件并试图使While False停止,但它没有用。另外,感谢用户khelwood为我提供了这个替代方案并简化了我的程序。
太久没看了?循环请求输入两次,无法修复它。
继承代码。
s2option_list =['Approach exit door', 'Check for vital signs']
def sget_choice(s2option_list):
while True:
print s2option_list
choice = raw_input('> ')
for i, opt in enumerate(s2option_list):
if opt in choice:
return i
else:
print "You need to select one of the given options."
def scenario2(response):
print response
print "Conversation"
print "Conversation"
print "Conversation"
sget_choice(s2option_list)
if sget_choice(s2option_list)==0:
dead("Conversation")
else:
print "Conversation"
sget_choice2(s2option_list2)
答案 0 :(得分:2)
def scenario2(response):
print response
print "Conversation"
print "Conversation"
print "Conversation"
res = sget_choice(s2option_list) # call it once save return value in a variable
if res == 0: # now you are checking the value from the previous call not calling again
dead("Conversation")
else:
print "Conversation"
sget_choice2(s2option_list2)