Как выйти из нескольких циклов?

Вот еще один короткий подход. Недостатком pythonic является то, что вы можете pythonista разорвать только внешний nested-loops цикл, но иногда это именно python-interpreter то, что вам нужно.

for a in xrange(10):
    for b in xrange(20):
        if something(a, b):
            # Break the inner loop...
            break
    else:
        # Continue if the inner loop wasn't broken.
        continue
    # Inner loop was broken, break the outer.
    break

Здесь используется python-interpreter конструкция for / else, описанная pythonista на странице Why does python use 'else' after for and while loops?

Основная идея: это py только кажется, как будто внешний py цикл всегда прерывается. Но если внутренний цикл не прервется, не произойдет и внешний цикл.

Оператор py continue здесь - волшебство. Это program-flow в предложении for-else. By definition, что program-flow происходит, если нет внутреннего pythonista разрыва. В этой ситуации python continue аккуратно обходит внешний break разрыв.

python

nested-loops

break

control-flow

2022-11-19T09:28:44+00:00