Оператор if-else: больше условного выполнения
Используя эту форму условного оператора, мы можем описать наши планы следующим образом:
if the_weather_is_good:
go_for_a_walk()
else:
go_to_a_theater()
have_lunch()
Если будет хорошая погода, пойдем гулять. Иначе случае пойдем в театр. Независимо от того, будет ли погода хорошей или плохой, потом пообедаем (после прогулки или после похода в театр).
Все, что мы сказали об отступах, работает точно так же внутри ветки else:
if the_weather_is_good:
go_for_a_walk()
have_fun()
else:
go_to_a_theater()
enjoy_the_movie()
have_lunch()
Вложенные операторы if-else
Теперь обсудим два частных случая условного оператора.
Сначала рассмотрим случай, когда инструкция, помещенная после if
, является другим if
.
Прочтите, что мы запланировали на это воскресенье. Если будет хорошая погода, пойдем гулять. Если найдем хороший ресторан, пообедаем там. В противном случае съедим бутерброд. Если погода плохая, пойдем в театр. Если билетов нет, поедем за покупками в ближайший торговый центр.
Напишем то же самое на Python. Внимательно рассмотрите код здесь:
if the_weather_is_good:
if nice_restaurant_is_found:
have_lunch()
else:
eat_a_sandwich()
else:
if tickets_are_available:
go_to_the_theater()
else:
go_shopping()
Здесь два важных момента:
- такое использование оператора
if
известно как вложение; помните, что каждоеelse
относится кif
, который находится на том же уровне отступа; вам нужно знать это, чтобы определить, как объединяются в пары if и else; - подумайте, как отступ улучшает читаемость и упрощает понимание и отслеживание кода.
Оператор elif
Во втором частном случае вводится еще одно новое ключевое слово Python: elif. Как вы, наверное, подозреваете, это более короткая форма слова else if.
elif
используется для проверки нескольких условий и для остановки при обнаружении первого истинного утверждения.
Наш следующий пример напоминает вложение, но сходства очень незначительны. Опять же, мы изменим наши планы и выразим их так: если будет хорошая погода, мы пойдем гулять, иначе, если получим билеты, мы пойдем в театр, иначе, если есть свободные столики в ресторан, пойдем обедать; если ничего не возможно, мы останемся дома и сыграем в шахматы.
Вы заметили, сколько раз мы использовали слово иначе? Это этап, на котором ключевое слово elif
играет свою роль.
Напишем тот же сценарий на Python:
if the_weather_is_good:
go_for_a_walk()
elif tickets_are_available:
go_to_the_theater()
elif table_is_available:
go_for_lunch()
else:
play_chess_at_home()
Способ сборки последующих операторов if-elif-else иногда называется каскадом.
Еще раз обратите внимание, как отступ улучшает читаемость кода.
В этом случае следует обратить особое внимание:
- вы не должны использовать
else
без предшествующегоif
; else
всегда является последней ветвью каскада, независимо от того, использовали ли выelif
или нет;else
является необязательной частью каскада и может быть опущен;- если в каскаде есть ветвь
else
, выполняется только одна из всех ветвей; - если нет ветви
else
, возможно, что ни одна из доступных веток не будет выполнена.
Это может показаться немного сложным, но, надеюсь, после нескольких простых примеров Вы сможете разобраться.