在if或while语句中分配变量值

Dav*_* W. 1 python while-loop

可能重复:
有没有办法在Python中的while(<here>)循环内直接进行变量赋值?

抱歉这个基本问题.我正在尝试学习Python,但实际上还没有找到答案.

在Python中,我可以为一个whileif语句中的变量赋值吗?如果是这样,怎么样?

例如.我不得不这样做:

line_list = []
while True:
    line = raw_input(">>> ")
    if not line: break
    line_list.append(line)
print line_list
Run Code Online (Sandbox Code Playgroud)

但我想这样做:

line_list = []
while line = raw_input(">>> "):
    line_list.append(line)
print line_list
Run Code Online (Sandbox Code Playgroud)

我正在看的教程没有提到这种或那种方式,但这是大多数其他语言的常见结构.

Fré*_*idi 7

那是不可能的.Python中的赋值是语句,而不是表达式.

它们不评估指定的值,也不返回对所分配对象的引用,这是其他语言的惯例.


And*_*ark 6

正如Frédéric的答案所示,不可能将变量分配给a while或者if,但是你可以使用iter()函数/ sentinel调用格式完成相同的操作:

for line in iter(lambda: raw_input(">>>"), ""):
    line_list.append(line)
Run Code Online (Sandbox Code Playgroud)