Команды if
93
код еще одну проверку для определения того, распространяется ли скидка на те-
кущего посетителя. Допустим, посетители с возрастом 65 и выше платят половину
от
обычной цены билета, или $5:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
else:
price = 5
print("Your admission cost is $" + str(price) + ".")
Б
у
льшая часть кода осталась неизменной. Второй блок
elif
в точке
теперь
убеждается в том, что посетителю меньше 65 лет, прежде чем назначить ему пол-
ную цену билета $10. Обратите внимание: значение, присвоенное в блоке
else
,
должно быть заменено на $5, потому что до этого блока доходят только посетители
с возрастом 65 и выше.
Отсутствие
блока else
Python не требует, чтобы цепочка
if
-
elif
непременно завершалась блоком
else
.
Иногда блок
else
удобен; в других случаях бывает нагляднее использовать допол-
нительную секцию
elif
для обработки конкретного условия:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
elif age >= 65:
price = 5
print("Your admission cost is $" + str(price) + ".")
Блок
elif
в точке
назначает цену $5, если возраст посетителя равен 65 и выше;
смысл такого кода более понятен, чем у обобщенного блока
else
. С таким измене-
нием выполнение каждого блока возможно только при истинности конкретного
условия.
Блок
else
«универсален»: он обрабатывает все условия, не подходящие ни под одну
конкретную проверку
if
или
elif
, причем в эту категорию иногда могут попасть
недействительные или даже вредоносные данные. Если у вас имеется завершающее
конкретное условие, лучше используйте завершающий блок
elif
и опустите блок
else
. В этом случае вы можете быть уверены в том, что ваш код будет выполняться
только в правильных условиях.