Оператор for ... else в Python

В программировании мы используем циклы для перебора различных типов объектов. Цикл for - один из наиболее широко используемых циклов из-за своей простоты.

У Python есть очень интересная особенность, связанная с циклом for. Это позволяет нам использовать оператор else с циклом for для объединения выполнения условия и итерации. Ключевое слово else обычно используется в операторах if-else, где мы используем его для выполнения некоторых команд, когда условие if возвращает false.

Однако это не тот случай, когда мы работаем с циклом for в Python. Операторы в блоке else выполняются на основе предложения завершения, когда цикл завершается, при условии, что цикл не встречает оператора break ни на одной из своих итераций. Оператор break используется для выхода из цикла. Если оператор break не встречается, то операторы блока else также выполняются после цикла.

Если встречается оператор continue, то выполняется оператор else. Это потому, что оператор continue вызывает следующую итерацию. Это не разрывает петлю.

См. Следующий код.

for i in range(3):
    if(i > 5):
        break
else:
    print("Else Statements")
    
for i in range(3):
    if(i > 1):
        print("Break")
        break
else:
    print("Else Statements")
    
for i in range(3):
    if(i > 1):
        continue
else:
    print("Else Statements after Continue")

Выход:

Else Statements
Break
Else Statements after Continue

Многие опытные программисты не одобряют использование слова for...else, так как это может привести к путанице по поводу использования ключевого слова else. Однако у него все еще есть несколько полезных приложений на Python.

Например, мы можем использовать его, если ищем элемент в списке и хотим знать, присутствует он в списке или нет. Следующий фрагмент кода реализует это.

a = 15
lst = [10,5,6,8,9,7,5,11]
for i in lst:
    if(i == 15):
        print("Found")
        break
else:
     print("Not Found Loop Over")   

Выход:

Not Found Loop Over

Использование ключевого слова else не ограничивается циклом for и может использоваться с циклом while также в Python.

Сопутствующая статья - Python Statement

  • if ... else в однострочном Python