我想在python中运行while循环直到创建变量,如下所示:
while choice doesn't exist:
do stuff involving choice
end while loop
怎么办?
答案 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