Под логическим типом данных 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) |