功能使用While True不能按预期工作。要求输入两次

时间:2014-12-26 01:42:16

标签: python

此功能的目的是检查用户的输入,确定它是否在列表中,如果没有,则告诉用户“选择一个给定的选项”。

问题在于它要求我输入两次。当我选择选项''接近出口门''它再次循环并要求输入,当我再次输入相同的选项时,我得到结果(这导致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)   

1 个答案:

答案 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)