До этого момента наши программы всегда выполнялись одинаково.

Например,

print("Добро пожаловать!")

независимо ни от чего выведет одну и ту же строку.

Но часто программе приходится принимать решения.

Например:

  • если пользователь совершеннолетний - показать одно сообщение;
  • иначе - другое.

Для этого в Python существует оператор if.


Самое простое условие

Например,

age = 20

if age >= 18:
    print("Доступ разрешён")

Такой код читается почти как обычный русский язык:

Если возраст больше или равен 18, вывести сообщение.

Поскольку возраст равен 20, программа напечатает

Доступ разрешён

А если условие не выполнено?

Изменим возраст.

age = 15

if age >= 18:
    print("Доступ разрешён")

Теперь программа ничего не выведет.

Условие оказалось ложным, поэтому Python просто пропустил этот блок кода.


Что означает двоеточие?

Обратите внимание на запись.

if age >= 18:

После условия стоит двоеточие.

Оно говорит Python:

Сейчас начнётся блок кода, который нужно выполнить только при выполнении условия.


Почему строки сдвинуты вправо?

Посмотрите ещё раз.

if age >= 18:
    print("Доступ разрешён")

Строка с print() начинается немного правее.

Это называется отступом.

В Python отступы имеют особое значение.

Всё, что находится с одинаковым отступом после if, относится к этому условию.

Например,

if age >= 18:
    print("Доступ разрешён")
    print("Добро пожаловать!")

Обе строки будут выполнены только тогда, когда условие истинно.


Если нужно выполнить другое действие

Очень часто нужно сделать что-то и в противоположном случае.

Для этого существует else.

age = 15

if age >= 18:
    print("Доступ разрешён")
else:
    print("Доступ запрещён")

Теперь программа всегда выводит одно из двух сообщений.


Несколько вариантов

Иногда вариантов больше двух.

Например,

score = 85

if score >= 90:
    print("Отлично")
elif score >= 75:
    print("Хорошо")
else:
    print("Попробуй ещё раз")

Python проверяет условия сверху вниз.

Как только одно из них оказалось истинным, остальные уже не проверяются.


Что такое логическое значение?

Любое условие в Python может быть либо истинным, либо ложным.

Например,

age >= 18

Если возраст равен 20, результатом будет

True

Если возраст равен 15,

False

Такие значения имеют специальный тип данных - bool.

Пока достаточно помнить, что любое условие в конечном итоге превращается либо в True, либо в False.


Что мы сегодня узнали

Сегодня мы научились делать программы, которые принимают решения.

  • if выполняет код только при выполнении условия.
  • else используется для альтернативного варианта.
  • elif позволяет проверить дополнительные условия.
  • Отступы определяют, какие строки относятся к условию.
  • Любое условие в Python имеет значение True или False.

Попробуйте сами

Напишите программу, которая спрашивает возраст пользователя.

Если возраст больше или равен 18, выведите

Добро пожаловать!

Иначе -

Доступ запрещён.

После этого попробуйте добавить ещё один вариант.

Например:

  • младше 14 лет;
  • от 14 до 17 лет;
  • 18 лет и старше.

Что дальше?

Теперь программа умеет выбирать один из нескольких вариантов.

Но иногда одно и то же действие нужно выполнять много раз.

Например:

  • вывести числа от 1 до 10;
  • спрашивать пароль, пока он не станет правильным;
  • выполнять программу до команды пользователя.

Для этого существует цикл while, с которым мы познакомимся в следующей статье.