Ситуация: мы пишем опросник на Python, и нам важно, чтобы его мог пройти только совершеннолетний. Для этого мы добавляем в код такую логику:
- Спрашиваем про возраст.
- Смотрим, он больше 18 или нет.
- Если нет — останавливаем программу.
- Пишем дальше код, который будет работать, если участнику есть 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('Как вас зовут: ')