Module (11%)
Section (53%)

Оператор 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, возможно, что ни одна из доступных веток не будет выполнена.

Это может показаться немного сложным, но, надеюсь, после нескольких простых примеров Вы сможете разобраться.