Module (9%)
Section (47%)

Условное выполнение: оператор if

Если некий бессонный разработчик Python засыпает, когда он насчитывает 120 овец, а процедура, вызывающая сон, может быть реализована как специальная функция с именем sleep_and_dream(), весь код принимает следующую форму:

if sheep_counter >= 120: # Evaluate a test expression sleep_and_dream() # Execute if test expression is True

Вы можете читать это так: если sheep_counter больше или равно 120, тогда засыпайте и смотрите сны (т.е. выполните функцию sleep_and_dream.)


Мы сказали, что операторы условного выполнения должны иметь отступ. Это создает очень четкую структуру, наглядно демонстрирующую все возможные пути выполнения в коде.

Взгляните на следующий код:

if sheep_counter >= 120: make_a_bed() take_a_shower() sleep_and_dream() feed_the_sheepdogs()

Как видите, застилание постели, принятие душа, засыпание и сновидения выполняются условно - когда sheep_counter достигает желаемого предела.

Однако кормление овчарок выполняется всегда (т.е. функция feed_the_sheepdogs() не имеет отступа и не принадлежит блоку if, что означает, что он всегда выполняется.)

Теперь мы собираемся обсудить другой вариант условного оператора, который также позволяет выполнять дополнительное действие, когда условие не выполняется.


Условное выполнение: выражение if-else

Мы начали с простой фразы, которая гласила: Если будет хорошая погода, мы пойдем гулять.

Примечание: ни слова о том, что будет, если погода будет плохой. Мы знаем только то, что не выйдем на улицу, но неизвестно, что мы могли бы сделать вместо этого. Возможно, мы захотим что-то спланировать и на случай плохой погоды.

Можно сказать, например: Если будет хорошая погода, пойдем гулять, в ином случае пойдем в театр.

Теперь мы знаем, что будем делать при соблюдении условий, и знаем, что будем делать, если не все пойдет по-нашему. Другими словами, у нас есть "План Б".

Python позволяет нам выражать такие альтернативные планы. Это делается с помощью второй, немного более сложной формы условного оператора, оператора if-else:

if true_or_false_condition: perform_if_condition_true else: perform_if_condition_false

Таким образом, появилось новое слово: else - это ключевое слово.

В части кода, начинающейся с else, говорится, что делать, если условие, указанное для if, не выполняется (обратите внимание на двоеточие после слова).

Выполнение if-else происходит следующим образом:

  • если условие оценивается как Истина (его значение не равно нулю), выполняется инструкция perform_if_condition_true, а условная инструкция подходит к концу;
  • если условие оценивается как Ложь (равно нулю), выполняется инструкция perform_if_condition_false, а условная инструкция подходит к концу.