Условное выполнение: оператор 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
, а условная инструкция подходит к концу.