90
Глава 5 • Команды if
Простые команды if
Простейшая
форма команды
if
состоит из одного условия и одного действия:
if
условие
:
действие
В первой строке размещается условие, а в блоке с отступом — практически
любое действие. Если условие истинно, то Python выполняет код в блоке после
команды
if
, а если ложно, этот код игнорируется.
Допустим, имеется переменная, представляющая возраст человека. Следующий
код
проверяет, что этот возраст достаточен для голосования:
voting.py
age = 19
if age >= 18:
print("You are old enough to vote!")
В точке
Python проверяет, что значение переменной
age
больше или равно 18.
В таком случае выполняется команда
print
в строке с отступом:
You are old enough to vote!
Отступы в командах
if
играют ту же роль, что и в циклах
for
. Если условие истин-
но, то все строки с отступом после команды
if
выполняются, а если ложно — весь
блок с отступом игнорируется.
Блок команды
if
может содержать сколько угодно строк. Добавим еще одну строку
для вывода дополнительного сообщения в том случае, если возраст достаточен для
голосования:
age = 19
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
Условие выполняется, а обе команды
print
снабжены отступом, поэтому выводятся
оба сообщения:
You are old enough to vote!
Have you registered to vote yet?
Если
значение
age
меньше 18, программа ничего не выводит.
Команды if-else
Часто в программе необходимо выполнить одно действие в том случае, если ус-
ловие истинно, и другое действие, если оно ложно. С синтаксисом
if
-
else
это
возможно. Блок
if
-
else
в целом похож на команду
if
, но секция
else
определяет
действие
или набор действий, выполняемых при неудачной проверке.
Команды if
91
В следующем примере выводится то же сообщение, которое выводилось ранее, если
возраст достаточен для голосования, но на этот раз при любом другом возрасте
выводится другое сообщение:
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
Если условие
истинно, то выполняется первый блок с командами
print
. Если же
условие ложно, выполняется блок
else
в точке
. Так как значение
age
на этот раз
меньше 18, условие оказывается ложным,
и выполняется код в блоке
else
:
Sorry, you are too young to vote.
Please register to vote as soon as you turn 18!
Этот код работает, потому что существуют всего две возможные ситуации: воз-
раст либо достаточен для голосования, либо недостаточен. Структура
if
-
else
хорошо подходит для тех ситуаций, в которых Python всегда выполняет только
одно из двух возможных действий. В подобных простых цепочках
if
-
else
всегда
выполняется одно из двух возможных действий.
Цепочки if-elif-else
Нередко в программе требуется проверять более двух возможных ситуаций; для
таких ситуаций в Python предусмотрен синтаксис
if
-
elif
-
else
. Python выполняет
только один блок в цепочке
if
-
elif
-
else
. Все условия проверяются по порядку
до тех пор, пока одно из них не даст истинный результат. Далее выполняется код,
следующий за
этим условием, а все остальные проверки Python пропускает.
Во многих реальных ситуациях существуют более двух возможных результатов.
Представьте себе парк аттракционов, который взимает разную плату за вход для
разных возрастных групп:
Для посетителей младше 4 лет вход бесплатный.
Для посетителей от 4 до 18 лет билет стоит $5.
Для посетителей от 18 лет и старше билет стоит $10.
Как использовать команду
if
для определения платы за вход? Следующий код
определяет, к какой возрастной категории относится посетитель, и выводит со-
общение со стоимостью билета:
amusement_park.py
age = 12
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $5.")