【发布时间】:2013-11-15 01:57:32
【问题描述】:
一个关于 Python 语法的简单问题。我想在while循环的条件下将一个函数的值分配给一个变量。当函数返回的值为 false 时,循环应该中断。我知道如何在 PHP 中做到这一点。
while (($data = fgetcsv($fh, 1000, ",")) !== FALSE)
但是,当我在 Python 中尝试类似的语法时,会出现语法错误。
【问题讨论】:
-
如果您在 Python 中有一个函数
fgetcsv,它返回一个字符串或False,因此与您在 PHP 中的模式完全相同,那么for data in iter(lambda: fgetcsv(fh, 1000, ","), False):将产生您想要的效果。 -
@Duncan - 嗯...如果您想要一个更通用的
iter并将任何Falsey 值视为哨兵怎么办? -
我更新了 2020 年的答案; := 运算符从 Python 3.8 开始存在。
标签: python while-loop variable-assignment