在if或while语句中赋值变量
抱歉问这么基础的问题。我正在学习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
我看的教程没有提到这个,但在其他大多数编程语言中这是很常见的写法。
3 个回答
0
这里你不想用 while
循环!因为这样会不停地往列表里添加内容,一旦输入了什么并按下“回车”。
这个方法应该可以用:
while 1:
line = raw_input(">>> ")
if line:
line_list.append(line)
当然,这和你想要的不是完全一样,但就我所知,这个方法能满足你的需求。
7
这是不可能的。在Python中,赋值是语句,而不是表达式。
它们不会返回被赋值的结果,也不会像其他语言那样返回指向被赋值对象的引用。
6
正如Frédéric的回答所说,不能直接把一个while
或if
的结果赋值给一个变量,不过你可以用iter()
这个函数,配合特定的调用方式,来实现类似的效果:
for line in iter(lambda: raw_input(">>>"), ""):
line_list.append(line)