Как исправить SyntaxError: break outside loop в Python

Как исправить SyntaxError: break outside loop в Python

Python выдает сообщение “SyntaxError: ‘break’ outside loop” всякий раз, когда встречает оператор break вне цикла. Наиболее распространенные случаи - использование break внутри блока if (который не является частью цикла) или когда вы случайно используете его вместо return для возврата из функции.

Вот как выглядит ошибка:

File /dwd/sandbox/test.py, line 2
  break
  ^^^^^
SyntaxError: 'break' outside loop

Оператор break - это функция потока управления, используемая для выхода из внутреннего цикла. Например, при достижении определенного значения. Это очень похоже на язык Си.

Согласно синтаксису Python, ключевое слово break применимо только внутри циклов - for и while.

Вот пример:

values = [7, 8, 9.5, 12]

for i in values:
    # Break out of the loop if i > 10
    if (i > 10):
        break
    print(i)

Приведенный выше код выполняет итерацию по списку и выводит значения меньше 10. Как только он достигает значения больше 10, он выходит из цикла.

Как исправить ошибку SyntaxError: ‘break’ outside loop

Ошибка “SyntaxError: ‘break’ outside loop” возникает при двух сценариях:

При использовании break внутри блока if, который не является частью цикла.При использовании break (вместо return) для возврата из функции.

Давайте посмотрим несколько примеров с их решениями.

При использовании break внутри блока if, который не является частью цикла: Одной из наиболее распространенных причин “SyntaxError: ‘break’ outside loop” является использование ключевого слова break в блоке if, который не является частью цикла:

if item > 100
  break # 🚫 SyntaxError: 'break' outside loop

# some code here

Нет смысла выходить из блока if. Если условие не выполняется, код все равно не выполняется. Приведенный выше код имеет смысл, только если он находится внутри цикла:

values = [7, 8, 9.5, 12]

for item in values:
    if (item > 10):
        break
    print(i)

В противном случае он будет бесполезен и одновременно будет являться ошибкой синтаксиса (SyntaxError)!

Однако, если вы хотите сохранить блок if по синтаксическим причинам, вы можете заменить ключевое слово break на ключевое слово pass.

Оператор pass ничего не делает в Python. Однако вы всегда можете использовать его, когда утверждение требуется синтаксически, но никаких действий не требуется.

При использовании break (вместо return) для возврата из функции: Другой причиной этой ошибки является случайное использование ключевого слова break (вместо return) для возврата из функции:

def checkAge(age):
    if (age < 12):
        break # 🚫 SyntaxError: 'break' outside loop

    # some code here 

Чтобы вернуться из функции, вы всегда должны использовать return (со значением или без него):

def checkAge(age):
    if (age <= 12):
        return

    # some code here

Хорошо, я думаю, это поможет. Надеюсь, это краткое руководство помогло вам решить вашу проблему.

Спасибо за прочтение.