可能重复:
Is there any way to do variable assignments directly inside a while(<here>) loop in Python?
对这样一个基本问题感到抱歉。我正在尝试学习Python,但我们还没有找到答案。
在Python中,我可以在while
或if
语句中为变量赋值吗?如果是这样,怎么样?
例如。我不得不这样做:
line_list = []
while True:
line = raw_input(">>> ")
if not line: break
line_list.append(line)
print line_list
但我想这样做:
line_list = []
while line = raw_input(">>> "):
line_list.append(line)
print line_list
我看过的教程并没有提到这种或那种方式,但这是大多数其他语言的常见结构。
答案 0 :(得分:7)
那是不可能的。 Python中的Assignments是语句,而不是表达式。
他们不会评估指定的值,也不会返回对所分配对象的引用,这是其他语言的惯例。
答案 1 :(得分:6)
正如Frédéric的回答所示,不可能为变量分配while
或if
,但是使用iter()
和函数/ sentinel调用可以完成基本相同的操作格式:
for line in iter(lambda: raw_input(">>>"), ""):
line_list.append(line)
答案 2 :(得分:0)
您不想在此处使用while
循环!一旦输入一些输入并且命中“输入”,它就无限地附加到列表中。
这应该有效:
while 1:
line = raw_input(">>> ")
if line:
line_list.append(line)
当然,这不是一回事,但就我所知,它可以满足您的需求。