Что такое инструкции "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