До этого момента наши программы всегда выполнялись одинаково.
Например,
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, с которым мы познакомимся в следующей статье.