如何在循环中运行python直到创建变量?

时间:2015-01-22 12:06:24

标签: python while-loop

我想在python中运行while循环直到创建变量,如下所示:

while choice doesn't exist:
  do stuff involving choice
end while loop

怎么办?

3 个答案:

答案 0 :(得分:3)

while 'choice' not in locals():
    # your code here

但你这样做是错误的。你最好在循环之前初始化变量,如下所示:

choice = None
while choice is None:
    # your code

答案 1 :(得分:0)

Python中没有exists()的概念(与其他编程语言一样)。我们通常使用bool评估并使用falsish值初始化相关变量,如下面的方法:

found = False
while not found:
    found = search()
在这种情况下,

search()表示您选择的方法,该方法在某些时候将绑定到found的值更改为真实的值。

答案 2 :(得分:0)

几乎是Pythonic的方式:

def exists(variable):
    try:
        eval(variable)
    except NameError:
        return False
    return True

while not exists('choice'):
    choice = 42

print(choice)

我说"几乎"因为将try/except放在循环本身中更是如此:

done = False
while not done:
    try:
        # do stuff with choice
        choice = 42
        print(choice)
        done = True
    except NameError:
        pass