Шаг 4.
Однострочники Python.
Краткая памятка по Python. Основные структуры данных. Булевы значения

    На этом шаге мы рассмотрим особенности использования таких значений.

    Переменная типа Boolean может принимать только одно из двух значений - False и True.

    В языке Python типы данных Boolean и Integer тесно связаны: "под капотом" типа данных Boolean используются значения типа Integer (по умолчанию булево значение False представлено целочисленным значением 0, а булево значение True - целочисленным значением 1). В примере 1.2 показано использование этих двух ключевых слов Boolean.


Пример 1.2. Булевы значения False и True
x = 1 > 2 
print(x)
# False

y = 2 > 1
print(y)
# True

    После вычисления значений указанных выражений переменная x будет ссылаться на булево значение False, а переменная y - на булево значение True.

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

Ключевые слова: and, or, not

    Булевы выражения соответствуют основным логическим операторам. Сочетание их всего с тремя следующими ключевыми словами позволяет создавать обширный спектр потенциально весьма сложных выражений:

    Рассмотрим следующий фрагмент кода, представленный в примере 1.3.


Пример 1.3. Ключевые слова and, or и not
x, y = True, False
print((x or y) == True)
# True

print((x and y) == False)
# True

print((not y) == True)
# True

    С помощью этих трех ключевых слов можно выразить любые логические выражения, которые только могут понадобиться.

Приоритет булевых операторов

    Для понимания булевой логики очень важен порядок применения булевых операторов. Например, рассмотрим выражение на естественном языке "идет дождь и холодно или ветрено". Его можно интерпретировать двояко:

    Порядок булевых операторов важен. Правильной будет первая интерпретация выражения, поскольку оператор логического И (and) обладает приоритетом перед оператором логического ИЛИ (or). Рассмотрим фрагмент кода, приведенный в примере 1.4.


Пример 1.4. Тип данных Boolean
## 1. Булевы операции 
x, y = True, False

print(x and not y)
# True

print(not x and y or x)
# True

## 2. Если вычисление значения условия дает False
if None or 0 or 0.0 or '' or [] or {} or set(): 
    print("Dead code") # Не достигается

    Этот код демонстрирует два важных нюанса. Во-первых, булевы операторы подчиняются правилам приоритета: наивысший приоритет у оператора not, далее следует оператор and, а затем оператор or. Во-вторых, следующие значения автоматически вычисляются как равные False: ключевое слово None, целочисленное значение 0, значение с плавающей точкой 0.0, пустые строки и пустые объекты контейнерных типов.

    На следующем шаге мы рассмотрим строковые значения.




Предыдущий шаг Содержание Следующий шаг