Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python while循环使用一个equals(=)_Python_Loops_Syntax - Fatal编程技术网

Python while循环使用一个equals(=)

Python while循环使用一个equals(=),python,loops,syntax,Python,Loops,Syntax,我正在尝试实现一个最大流算法。这是我的密码: while path = find_path(residual, source, sink): (do whatever) 是的,这是while循环中故意使用的单个equals(=)。find_path()函数连接起来,如果残差图中仍然存在有效路径,则返回有效路径;如果没有剩余路径,则返回None。在我看来,这应该将path指定为find_path()返回的任何内容,然后检查它以查看我们是否进行了另一次迭代。但是,我得到了一个语法错误 我可

我正在尝试实现一个最大流算法。这是我的密码:

while path = find_path(residual, source, sink):
    (do whatever)
是的,这是while循环中故意使用的单个equals(=)。
find_path()
函数连接起来,如果残差图中仍然存在有效路径,则返回有效路径;如果没有剩余路径,则返回
None
。在我看来,这应该将
path
指定为
find_path()
返回的任何内容,然后检查它以查看我们是否进行了另一次迭代。但是,我得到了一个语法错误

我可以一直这么做:

while True:
    path = find_path(residual, source, sink)
    if not path: break

但这似乎不雅。由于类似的错误频率,确实不允许在Python中在循环中放置单个equals吗?

这需要Python 3.8:

注意


3.8仅在10月初发布iirc,因此如果您想使用它,可能需要更新您的环境

@Danoram Ya,它们很整洁。它们将像其他语言一样(尽管标准范围规则仍然适用)允许(某种)if let构造:
if x:=some\u nullable():(使用非None x)else:(x为None)
。这很有用——谢谢。你说得对,今天对我没有帮助。(我使用的是3.5,我没有太多的控制权。)但我会在将来记住这一点,因为3.8更为常见。
while path := find_path(residual, source, sink):
    (do whatever)