Я пытаюсь реализовать алгоритм максимального потока. Вот мой код:
while path = find_path(residual, source, sink):
(do whatever)
Да, это преднамеренное одиночное равенство (=) в цикле while. Функция find_path()
подключена для возврата действительного пути, если он все еще существует в остаточном графе, но None
, если его еще нет. По моему мнению, это должно присвоить path
для того, что find_path()
возвращает, а затем проверить, чтобы увидеть, делаем ли мы еще одну итерацию. Но вместо этого я получаю синтаксическую ошибку.
Я всегда могу сделать это долго:
while True:
path = find_path(residual, source, sink)
if not path: break
Но это кажется не элегантным. Действительно ли это так, что вам просто не разрешено помещать одинаковые равные в цикл в Python из-за частоты ошибок, которые напоминают его?