Логический тип данных

Под логическим типом данных bool понимают тип данных, который принимает два значения – истина True или ложь False. True и False пишутся с большой буквы. Если написать с маленькой true, интерпретатор выдаст ошибку: NameError: name ‘true’ is not defined

True и False являются экземплярами класса bool который в свою очередь является подклассом int. Поэтому True и False в Python ведут себя как числа 1 и 0. Отличие только в том, как они выводятся на экран:

True

Type(True)

True==1

True +4

5 * False

В языке программирование Python для приведения других типов данных к булевому типу, используется функция bool(). Работает данная функция следующим образом. Значение функции True в случае:

  • непустая строка (также один или несколько пробелов)

bool(«python»)

  • ненулевое число (также меньшее единицы, например -5)

bool(-5)

  • непустой список/кортеж (также содержит один пустой элемент, например пустой кортеж)

bool([1,2,3])

bool((0,1))

bool([()])

  • функция

def test():

return «test»

bool(test)

Функция bool() вернет False

  • пустая строка

bool(«»)

  • нулевое число

bool(0)

  • пустой список/кортеж

bool([])

bool(())

В случае, когда нам необходимо получить True и False в строковом представлении. Если выполнить код ниже, он вызовет ошибку:

print(«answer is » + True)

TypeError: can only concatenate str (not «bool») to str

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

Для вывода на экран булевого значения, необходимо привести его к строке:

answer = True

print(«my answer is » + str(True))

или используйте форматирование строки:

print(«my answer is {}».format(True))

Встроенная функция int() преобразует логическое значение в 1 или 0.

int(True)

int(False)

Аналогичного результата можно добиться умножением логического типа на единицу:

True * 1

False * 1

В языке программирования Python используется несколько типов операторов. Рассмотрим операторы сравнения и логические операторы, т.к. результатом их выполнения являются True или False.

Операторы сравнения

Логические операторы

1 == 5

1 != 5

1 > 5

1 < 5

1 >= 5

1 <= 5

(1 + 1 == 2) or (2 * 2 == 5)

(1 + 1 == 2) and (2 * 2 == 5)

(1 + 1 == 2) and not (2 * 2 == 5)