Изучаем Python | страница 64
age = 17
(1) if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
(2)else:
. .print("Sorry, you are too young to vote.")
. .print("Please register to vote as soon as you turn 18!")
Если условие (1) истинно, то выполняется первый блок с командами print. Если же условие ложно, выполняется блок else в точке (2). Так как значение 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
(1) if age < 4:
. .print("Your admission cost is $0.")
(2)elif age < 18:
. .print("Your admission cost is $5.")
(3)else:
. .print("Your admission cost is $10.")
Условие if в точке (1) проверяет, что возраст посетителя меньше 4 лет. Если условие истинно, то программа выводит соответствующее сообщение, и Python пропускает остальные проверки. Строка elif в точке (2) в действительности является еще одной проверкой if, которая выполняется только в том случае, если предыдущая проверка завершилась неудачей. В этом месте цепочки известно, что возраст посетителя не меньше 4 лет, потому что первое условие было ложным. Если посетителю меньше 18 лет, программа выводит соответствующее сообщение, и Python пропускает блок else. Если ложны оба условия — if и elif, то Python выполняет код в блоке else в точке (3).