Python while循环带有单个等号(=)

我正在尝试实现最大流量算法。这是我的代码:

while path = find_path(residual,source,sink):
    (do whatever)

是的,这是while循环中的故意单等号(=)。 find_path()函数被连接起来,以在残差图中仍然存在有效路径的情况下返回有效路径,而在没有残差图的情况下返回None。我认为,应该将path分配为find_path()返回的值,然后检查它是否进行另一次迭代。但是,相反,我遇到了语法错误。

我总能做到这一点很长:

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

但这似乎不雅。确实是由于错误的发生频率而导致您只允许在Python中将单等号放入循环中的情况?

lilong19861 回答:Python while循环带有单个等号(=)

这需要Python 3.8的assignment expressions

while path := find_path(residual,source,sink):
    (do whatever) 

请注意:

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

本文链接:https://www.f2er.com/3169857.html

大家都在问