Что означает ошибка SyntaxError: 'break' outside loop

Что означает ошибка SyntaxError: 'break' outside loop

Это значит, что мы пытаемся выйти из цикла, которого нет

Ситуация: мы пишем опросник на Python, и нам важно, чтобы его мог пройти только совершеннолетний. Для этого мы добавляем в код такую логику: 

  1. Спрашиваем про возраст.
  2. Смотрим, он больше 18 или нет.
  3. Если нет — останавливаем программу.
  4. Пишем дальше код, который будет работать, если участнику есть 18 лет и программа не остановилась.

На Python это выглядит так:

# запрашиваем возраст
age_txt = input('Введите свой возраст: ')
# переводим введённое значение в число
age = int(age_txt)
# если меньше 18 лет
if age < 18:
        # выводим сообщение
        print('Вы не можете участвовать в опросе')
        # выходим из программы
        break
    
# спрашиваем имя
name_txt = input('Как вас зовут: ')

Вроде всё логично, но после запуска мы получаем ошибку:

❌ SyntaxError: 'break' outside loop

Что это значит: в отличие от многих других языков, команда break в Python используется только для выхода из цикла, а не выхода из программы в целом.

Когда встречается: когда мы хотим выйти из программы в середине её работы, но не знаем как.

Что делать с ошибкой SyntaxError: 'break' outside loop

Всё зависит от того, что вы хотите сделать.

Если вы хотите выйти из цикла, то break служит как раз для этого — нужно только убедиться, что всё в порядке с отступами. Например, здесь мы выйдем из цикла, как только переменная станет больше 9:

for i in range(10):
    print(i)
    if i > 8:
break

А если вы хотите закончить работу программы в произвольном месте, то нужно вместо break использовать команду exit(). Она штатно завершит все процессы в коде и остановит программу. Это как раз подойдёт для нашего примера с опросником — теперь программа остановится, если возраст будет меньше 18:

# запрашиваем возраст
age_txt = input('Введите свой возраст: ')
# переводим введённое значение в число
age = int(age_txt)
# если меньше 18 лет
if age < 18:
        # выводим сообщение
        print('Вы не можете участвовать в опросе')
        # выходим из программы
        exit()
    
# спрашиваем имя
name_txt = input('Как вас зовут: ')

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Любишь Python? Зарабатывай на нём!
Изучите самый модный язык программирования и станьте крутым бэкенд-разработчиком. Старт — бесплатно.
Попробовать
Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём! Любишь Python? Зарабатывай на нём!
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Как сделать свой сайт за 10 минут без программирования

Для некоторых это становится источником постоянного дохода, если подойти к процессу с умом.

easy
CSS: как задавать размеры элементов на сайте
CSS: как задавать размеры элементов на сайте

Шпаргалка по единицам измерения для начинающих верстальщиков

easy
Настраиваем рабочее окружение для Android-разработки
Настраиваем рабочее окружение для Android-разработки

Нам нужен редактор кода, компилятор и эмулятор

medium
Своя игра: создаём собственную «Змейку»

Работы на 10 минут, а удовольствия на целый день.

medium
Простейший генератор креативного текста

Без нейросетей, регистрации и СМС.

hard
Делаем свой слайдер для картинок «было — стало»
Делаем свой слайдер для картинок «было — стало»

Космический проект

medium
Устанавливаем суверенный облачный офис

Пошаговая установка OnlyOffice на ваш собственный или арендованный сервер

hard
Красивый цветной текст в CSS: как это сделать
Красивый цветной текст в CSS: как это сделать

Можно раскрасить хоть по диагонали

easy
Решаем кодом: программа угадает число за 7 попыток
Решаем кодом: программа угадает число за 7 попыток

Попробуйте её победить

easy
Свой тетрис на JavaScript: прокачиваем проект
Свой тетрис на JavaScript: прокачиваем проект

Доработки, чтобы получилась настоящая игра.

medium
easy