Что такое инструкции "else" и "elif"?
Что делать, если вы хотите, чтобы программа выполняла фрагмент кода, когда тестовое выражение равно False
? А если нужно включить другое тестовое выражение? Python содержит другие ключевые слова, которые можно использовать для создания более сложных инструкций if
— else
и elif
. Сочетая if
, else
и elif
, можно писать сложные программы с несколькими тестовыми выражениями и инструкциями для выполнения.
Работа с else
Вам известно, что при использовании инструкции if
тело программы будет выполняться только в том случае, если тестовое выражение имеет значение True
. Чтобы добавить код, который будет выполняться, когда тестовое выражение равно False
, нужно добавить инструкцию else
.
Давайте адаптируем пример из предыдущего раздела:
a = 27
b = 93
if a >= b:
print(a)
В этом примере, если a
значение не превышает или равно b
, ничего не происходит. Предположим, что вместо этого вы хотите выводить b
, если тестовое выражение равно False
:
a = 27
b = 93
if a >= b:
print(a)
else:
print(b)
Выходные данные: 93
Если тестовое выражение равно False
, код в теле инструкции if
пропускается, и программа продолжает выполнение с инструкции else
. Синтаксис инструкции if/else
всегда имеет следующий вид:
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Работа с elif
В Python ключевое слово elif
является короткой формой для else if. Используя инструкции elif
, можно добавить в программу несколько тестовых выражений. Эти инструкции выполняются в том порядке, в котором они записаны, поэтому программа перейдет к инструкции elif
только в том случае, если первая инструкция if
имеет значение False
. Например:
a = 27
b = 93
if a <= b:
print("a is less than or equal to b")
elif a == b:
print("a is equal to b")
Выходные данные: a is less than or equal to b
В этом варианте оператор в блоке кода не будет выполняться, elif
так как if
оператор имеет значение True
.
Синтаксис инструкции if/elif
:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
Сочетание инструкций if
, elif
и else
Вы можете сочетать инструкции if
, elif
и else
для создания программ со сложной условной логикой. Помните, что инструкция elif
выполняется, только если условие if
имеет значение false
. Также обратите внимание, что блок if
может иметь только один блок else
, но несколько блоков elif
.
Рассмотрим пример с оператором if
и elif
оператором else
:
a = 27
b = 93
if a < b:
print("a is less than b")
elif a > b:
print("a is greater than b")
else:
print ("a is equal to b")
Блок кода, использующий все три типа инструкций, имеет следующий синтаксис:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
else:
# statement(s) to be run
Работа с вложенной условной логикой
Python также поддерживает вложенную условную логику, то есть можно вкладывать инструкции if
, elif
и else
для создания еще более сложных программ. Чтобы вложить условия, добавьте отступ для внутренних условий, и все то, что находится на одном уровне отступа, будет выполняться в одном блоке кода:
a = 16
b = 25
c = 27
if a > b:
if b > c:
print ("a is greater than b and b is greater than c")
else:
print ("a is greater than b and less than c")
elif a == b:
print ("a is equal to b")
else:
print ("a is less than b")
Этот фрагмент кода создает выходные данные a is less than b
.
Вложенная условная логика следует тем же правилам, что и обычная условная логика в каждом блоке кода. Вот один из примеров синтаксиса:
if test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
else:
# statement(s) to be run