Python 在if或while语句中指定变量值

Python 在if或while语句中指定变量值,python,while-loop,Python,While Loop,可能重复: 很抱歉问了这么一个基本的问题。我正在尝试学习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 l

可能重复:

很抱歉问了这么一个基本的问题。我正在尝试学习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
但我想这样做:

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
我正在看的教程没有以这种或那种方式提到这一点,但这在大多数其他语言中是一种常见的构造。

这是不可能的。Python中是语句,而不是表达式

它们不会按照指定的值求值,也不会像其他语言那样返回对指定对象的引用。

这是不可能的。Python中是语句,而不是表达式


按照其他语言的习惯,它们不会计算指定的值,也不会返回对指定对象的引用。

正如Frédéric的回答所示,暂时或如果您可以使用函数/sentinel调用格式完成基本相同的任务,则不可能指定变量:

for line in iter(lambda: raw_input(">>>"), ""):
    line_list.append(line)

正如Frédéric的回答所指出的,暂时或如果您可以使用函数/sentinel调用格式完成基本相同的任务,则不可能为变量赋值:

for line in iter(lambda: raw_input(">>>"), ""):
    line_list.append(line)
你不想在这里使用while循环!一旦输入某个输入并按enter键,它就会无限地附加到列表中

这应该起作用:

while 1:
    line = raw_input(">>> ")
    if line:
        line_list.append(line)
当然,这不是同一件事,但据我所知,它可以满足您的需要。

您不想在这里使用while循环!一旦输入某个输入并按enter键,它就会无限地附加到列表中

这应该起作用:

while 1:
    line = raw_input(">>> ")
    if line:
        line_list.append(line)

当然,这不是同一件事,但据我所知,它可以满足您的需求。

这是不可能做到的。如果你搜索,你会发现你不是第一个问的人。在大多数其他语言中,一个常见的构造也是错误的。C语言、C++语言和语言特别是C类特征。这不是最重要的。这是不可能做到的。如果你搜索,你会发现你不是第一个问的人。在大多数其他语言中,一个常见的构造也是错误的。C语言、C++语言和语言特别是C类特征。这不是最重要的。