(Python) Вложенный условный оператор. Сложные условия


Вложенный условный оператор

В блоки «если» и «иначе» могут входить любые другие операторы, в том числе и другие вложенные условные операторы; при этом слово else относится к ближайшему предыдущему if.
 
Пример 
if A > 10:
    if A > 100:
        print("У вас очень много денег.")
    else:
        print("У вас достаточно денег.")
else:
    print("У вас маловато денег.")
Жирным шрифтом выделен условный оператор, который находится внутри другого оператора if, поэтому он называется вложенный условный оператор. С помощью вложенного условного оператора можно реализовать выбор из нескольких вариантов, а не только из двух.
Можно вложенный оператор использовать и после слова else.
 
Пример 
if A < 10:
    print("У вас маловато денег.")
else:
    if A > 100: 
        print("У вас очень много денег.") 
    else: 
        print("У вас достаточно денег.")
В таком случае, если после else необходимо проверить еще одно условие, то вместо оператора if, можно использовать "каскадное" ветвление с ключевым словом elif (сокращение от else - if).
 
Пример
if A < 10:
    print("У вас маловато денег.")
elif A > 100: 
    print("У вас очень много денег.") 
else: 
    print("У вас достаточно денег.")
Обратите внимание на отступы во всех примерах. При использовании каскадного условия, все ключевые слова if-elif-else находятся на одном уровне.
При большом числе проверок, записанных с помощью каскадного условия, например, в цепочке if-elif-elif-... срабатывает первое истинное условие.

Сложные условия

Предыдущую задачу можно решить более коротким способом, используя сложные условия. 
Давайте разберемся, что такое сложные условия.

Простейшие условия состоят из одного отношения (больше, меньше и т.п.) Но иногда необходимо объединение простых условий в более сложные, Например, на улице холодно и идет дождь. Два простых условия (на улице холодно), (на улице идет дождь) здесь связаны связкой И.
 
СЛОЖНОЕ УСЛОВИЕ - состоит из двух или нескольких простых отношений (условий), которые объединяются с помощью логических операций:
  И - логическое умножение - на языке Python записывается как and, 
  ИЛИ - логическое сложение - на языке Python записывается как or,
  НЕ - логическое отрицание -на языке Python записывается как not.

Работают эти операции следующим образом.
Логическая
операция 
Пример Значение Примечание
and and b Логическое И:
True, если оба операндна True
Ленивый оператор
Если a = False, то значение b не вычисяется (и не проверяется).
Результат выражения сразу равно False.
or or b Логическое ИЛИ:
True, если хотя бы один из операндов True
Ленивый оператор
Если a = True, то значение b не вычисяется (и не проверяется).
Результат выражения сразу равно True.
not not a Логическое отрицание НЕ:
True, если операнд False и наоборот.
следующие два условия равносильны:   A>B     и    not (A<=B)
Приоритет выполнения логических операций и отношений
  1. Операции в скобках
  2. Логические отношения >, <, >=, <=, ==, !=
  3. Операция НЕ
  4. Операция И
  5. Операция ИЛИ
Для изменения порядка действий используются круглые скобки.

 
Логические переменные
Во многих языках программирования есть возможность использовать переменные, которые хранят логические значения ("истина"/"ложь"). В Python такие переменные могут принимать значения True (истина) или False (ложь). Например, программа  
a = True
b = False
print(a or b)
Выведет на экран True.
Логические переменные относятся к типу bool, названному в честь английского математика Джорджа Буля - создателя алгебры логики.

 
 

Вложенный условный оператор: когда развилок больше двух


Условный оператор в форме  if...else используется когда необходимо реализовать две развилки. Что делать, если развилок больше, чем две? В этом случае можно использовать каскадные условия.

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


Общая форма записи каскадных условий
if условие1:
    # блок кода, который выполняется, если условие1 истинно
elif условие2:
    # блок кода, который выполняется, если условие1 ложно, а условие2 истинно

... # блоков elif может быть сколько угодно

else:
    # блок кода, который выполняется, если ни одно из условий не истинно

Обратите внимание: оператор с каскадными условиями может содержать более одного блока elif, но только один блок if и один блок else (если блок else не нужен, он может отсутствовать).

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация