toppings.py
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
if 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
Обработка начинается в точке со списка, содержащего заказанные дополнения.
Команды
if
в точке и проверяют, включает ли заказ конкретные дополне-
ния — грибы и пепперони, и если включает — выводят подтверждающее сообщение.
Проверка в точке реализована простой командой
if
, а не
elif
или
else
, поэтому
условие будет проверяться независимо от того, было ли предыдущее условие ис-
тинным или ложным. Код в точке проверяет, была ли заказана дополнительная
порция сыра, независимо от результата первых двух проверок. Эти три независи-
мых условия проверяются при каждом выполнении программы.
Так как в этом коде проверяются все возможные варианты дополнений, в заказ
будут включены два дополнения из трех:
Adding mushrooms.
Adding extra cheese.
Finished making your pizza!
Если бы в программе использовался блок
if
-
elif
-
else
, код работал бы неправиль-
но, потому что он прерывал работу после обнаружения первого истинного условия.
Вот как это выглядело бы:
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
elif 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
Команды if 95
elif 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
Первое же проверяемое условие (для
'mushrooms'
) оказывается истинным. Од-
нако значения
'extra
cheese'
и
'pepperoni'
после этого не проверяются, потому
что в цепочках
if
-
elif
-
else
после обнаружения первого истинного условия все
остальные условия пропускаются. В результате в пиццу будет включено только
первое из заказанных дополнений:
Adding mushrooms.
Finished making your pizza!
Итак, если вы хотите, чтобы в программе выполнялся только один блок кода, — ис-
пользуйте цепочку
if
-
elif
-
else
. Если же выполняться должны несколько блоков,
используйте серию независимых команд
if
.
Достарыңызбен бөлісу: |