Python - 循环没有结束

时间:2015-09-29 01:03:51

标签: python function loops

在我的代码中,我有一个错误结束循环。我已经构建了这个程序来使用函数从外部文件运行命令。在函数“end”中,我创建了一个名为“end_command”的变量,它应该结束循环。

#command list
master_list = ['commands_list_1']
commands_list_1 = ['end']
#var
c_l_i = "start_up"
end_command = True
inList = [[] for _ in range(len(master_list))]
userName = "Alex"

#functions
def end ():
    end_command = False
    return 0;

def find_in (key):
    eval(key+'()')
    return 0;

#code
while (True == end_command):
    c_l_i = input("<-: " + userName + " :->")
    counter_c = 0
    for mlist in master_list:   
        if (c_l_i in eval (mlist)):
            inList[counter_c] = "true"
            #find_in(c_l_i)
        else:
            inList[counter_c] = "false"
        counter_c += 1
    if ('true' in inList):
       find_in(c_l_i)
    else:
         print ('command not found')

1 个答案:

答案 0 :(得分:2)

end()函数正在设置名为end_command的局部变量,而不是全局变量。您需要global声明:

def end():
    global end_command
    end_command = False
    return 0

顺便说一下,使用eval用户输入是非常差的设计。