Книга «Изучаем Python»



Pdf көрінісі
бет59/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   55   56   57   58   59   60   61   62   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 5 • Команды if
Проверка нескольких условий
Цепочки 
if
-
elif
-
else
эффективны, но они подходят только в том случае, если ис-
тинным должно быть только одно условие. Как только Python находит выполня-
ющееся условие, все остальные проверки пропускаются. Такое поведение доста-
точно эффективно, потому что оно позволяет проверить одно конкретное условие.
Однако иногда бывает важно проверить 
все
условия, представляющие интерес. 
В таких случаях следует применять серии простых команд 
if
без блоков 
elif
или 
else
. Такое решение уместно, когда истинными могут быть сразу несколько усло-
вий и вы хотите отреагировать на все истинные условия.
Вернемся к примеру с пиццей. Если кто-то закажет пиццу с двумя дополнениями, 
программа должна обработать оба дополнения:
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
.


Достарыңызбен бөлісу:
1   ...   55   56   57   58   59   60   61   62   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет