Если это произошло — выполни команду!
Первый настоящий условный оператор: код, который выполняется только при определённых обстоятельствах — сначала как схема, потом на Python.
Сначала схема, потом код
Возьмём задачу: «если температура ниже нуля, показать „мороз“». Прежде чем писать Python, решим её как схему:
Где здесь вопрос? Какая ветка выполнится? Что произойдёт, если условие ложно? Только когда ответы понятны — переводим схему на Python.
Первый if
temperature = -5
if temperature < 0:
print("Мороз")
Разберём по словам:
if— «если»temperature < 0— условие (вопрос):— здесь начинается блок команд- строка с отступом — команда, принадлежащая этому блоку
Полный пример с обеими ветками
age = 20
if age >= 18:
print("Доступ разрешён.")
Если условие ложно, блок if просто пропускается
— программа не «падает», не выдаёт ошибку, а идёт дальше как ни в чём не бывало. Ложное
условие не означает «программа остановилась»: она продолжает выполнение со следующего шага.
Отступ — это часть программы
В Python отступ — не просто оформление для красоты. Именно отступом Python определяет,
какие строки относятся к блоку if, а какие уже нет:
if temperature < 0:
print("На улице мороз.")
print("Наденьте тёплую куртку.")
print("Не забудьте перчатки.")
print("Программа закончена")
Первые три команды имеют одинаковый отступ — все они относятся к блоку
if. Последняя строка отступа не имеет — она выполнится
всегда, независимо от условия.
IndentationError
Если забыть про отступ — Python не сможет понять, что относится к блоку:
if age >= 18:
print("OK")
# IndentationError: expected an indented block after 'if' statement
Исправление: добавить отступ перед print.
А иначе? — if/else
else задаёт блок кода, который выполнится, если условие
оказалось ложным:
age = 15
if age >= 18:
print("Доступ разрешён.")
else:
print("Доступ запрещён — вам ещё нет 18.")
Ветки снова сходятся
Какая бы ветка ни выполнилась — if или
else — дальше программа обычно продолжается с одного и того же
следующего шага. На схеме выше это видно по стрелкам, сходящимся в общую точку перед
КОНЕЦ.