Условные выражения

Последнее обновление: 13.11.2022

Ряд операций представляют условные выражения. Все эти операции принимают два операнда и возвращают логическое значение, которое в Python представляет тип bool. Существует только два логических значения - True (выражение истинно) и False (выражение ложно).

Операции сравнения

Простейшие условные выражения представляют операции сравнения, которые сравнивают два значения. Python поддерживает следующие операции сравнения:

  • ==

    Возвращает True, если оба операнда равны. Иначе возвращает False.

  • !=

    Возвращает True, если оба операнда НЕ равны. Иначе возвращает False.

  • > (больше чем)

    Возвращает True, если первый операнд больше второго.

  • < (меньше чем)

    Возвращает True, если первый операнд меньше второго.

  • >= (больше или равно)

    Возвращает True, если первый операнд больше или равен второму.

  • <= (меньше или равно)

    Возвращает True, если первый операнд меньше или равен второму.

Примеры операций сравнения:

a = 5
b = 6
result = 5 == 6  # сохраняем результат операции в переменную
print(result)  # False - 5 не равно 6
print(a != b)  # True
print(a > b)  # False - 5 меньше 6
print(a < b)  # True

bool1 = True
bool2 = False
print(bool1 == bool2)  # False - bool1 не равно bool2

Операции сравнения могут сравнивать различные объекты - строки, числа, логические значения, однако оба операнда операции должны представлять один и тот же тип.

Логические операции

Для создания составных условных выражений применяются логические операции. В Python имеются следующие логические операторы:

  • Оператор and (логическое умножение) применяется к двум операндам:

    x and y

    Сначала оператор and оценивает выражение x, и если оно равно False, то возвращается его значение. Если оно равно True, то оценивается второй операнд - y и возвращается значение y.

    age = 22
    weight = 58
    result = age > 21 and weight == 58
    print(result)  # True
    

    В данном случае оператор and сравнивает результаты двух выражений: age > 21 weight == 58. И если оба этих выражений возвращают True, то оператор and также возвращает True (формально возвращается значение последнего операнда).

    Но операндами оператора and необязательно выступают значения True и False. Это могут быть любые значения. Например:

    result = 4 and "w"
    print(result)  # w, так как 4 равно True, поэтому возвращается значение последнего операнда
    
    result = 0 and "w"
    print(result)  # 0, так как 0 эквивалентно False
    

    В данном случае число 0 и пустая строка "" расматриваются как False, все остальные числа и непустые строки эквивалентны True

  • or (логическое сложение) также применяется к двум операндам:

    x or y

    Сначала оператор or оценивает выражение x, и если оно равно True, то возвращается его значение. Если оно равно False, то оценивается второй операнд - y и возвращается значение y. Например

    age = 22
    isMarried = False
    result = age > 21 or isMarried
    print(result)  # True, так как выражение age > 21 равно True
    

    И также оператор or может применяться к любым значениям. Например:

    result = 4 or "w"
    print(result)  # 4, так как 4 эквивалентно True, поэтому возвращается значение первого операнда
    
    result = 0 or "w"
    print(result)  # w, так как 0 эквивалентно False, поэтому возвращается значение последнего операнда
    
  • not (логическое отрицание)

    Возвращает True, если выражение равно False

    age = 22
    isMarried = False
    print(not age > 21)  # False
    print(not isMarried)  # True
    print(not 4)  # False
    print(not 0)  # True
    

Оператор in

Оператор in возвращает True если в некотором наборе значений есть определенное значение. Он имеет следующую форму:

значение in набор_значений

Например, строка представляет набор символов. И с помощью оператора in мы можем проверить, есть ли в ней какая-нибудь подстрока:

message = "hello world!"
hello = "hello"
print(hello in message)  # True - подстрока hello есть в строке "hello world!"

gold = "gold"
print(gold in message)  # False - подстроки "gold" нет в строке "hello world!"

Если нам надо наоборот проверить, нет ли в наборе значений какого-либо значения, то мы може использовать модификацию оператора - not in. Она возвращает True, если в наборе значений НЕТ определенного значения:

message = "hello world!"
hello = "hello"
print(hello not in message)  # False

gold = "gold"
print(gold not in message)  # True
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850