September 19, 2023

Урок 2.1. Логический тип данных bool

На прошлом уроке мы узнали об основных типах данных в Python: int, float, str и bool; а также изучили основные операции с числами и строками.

Теперь поговорим подробнее о типе данных bool. Он указывает на логические значения, которых всего два – True и False. Не забывайте, что Python чувствителен к регистру. Если написать true вместо True, произойдет ошибка.


Преобразование типов

Можно преобразовывать не только числа в строки и наоборот. Значение типа bool можно преобразовать в любой из известных вам типов данных – и в строку, и в число. Соответственно, числа и строки тоже можно преобразовать в тип данных bool.

1. Преобразование в строку и наоборот. Начнем с очевидного. Значения True и False преобразуются в строки ‘True’ и ‘False’ соответственно.

is_true = True             # Присваиваем переменным логические значения
is_false = False

is_true = str(is_true)     # Преобразуем логические значения в строки
is_false = str(is_false)

print(is_true)             # Выводим значения переменных и их типы
print(type(is_true))
print(is_false)
print(type(is_false))

выводит:

True
<class 'str'>
False
<class 'str'>

Это работает в обратную сторону, но только для True.

is_true = 'True'            # Присваиваем переменным значения типа str
is_false = 'False'

is_true = bool(is_true)     # Преобразуем строки в логические значения
is_false = bool(is_false)

print(is_true)              # Выводим значения переменных и их типы
print(type(is_true))
print(is_false)
print(type(is_false))

выводит:

True
<class 'bool'>
True
<class 'bool'>

На самом деле любая непустая строка преобразуется в логическое значение True, а пустая строка – в значение False.

is_true = 'Python'          # Присваиваем переменной непустую строку
is_false = ''               # Присваиваем переменной пустую строку

is_true = bool(is_true)     # Преобразуем строки в логические значения
is_false = bool(is_false)

print(is_true)              # Выводим значения переменных и их типы
print(type(is_true))
print(is_false)
print(type(is_false))

выводит:

True
<class 'bool'>
False
<class 'bool'>

2. Преобразование в числовой тип данных и наоборот. Значение True преобразуется в число 1 (тип данных int) или 1.0 (тип данных float). Значение False преобразуется в 0 или 0.0.

is_true = True               # Присваиваем переменным логические значения
is_false = False

int_true = int(is_true)      # Преобразуем логические значения в числа,
flt_true = float(is_true)    # создаем для этого новые переменные
int_false = int(is_false)
flt_false = float(is_false)

print(int_true)              # Выводим значения переменных и их типы
print(type(int_true))
print(flt_true)
print(type(flt_true))
print(int_false)
print(type(int_false))
print(flt_false)
print(type(flt_false))

выводит:

1
<class 'int'>
1.0
<class 'float'>
0
<class 'int'>
0.0
<class 'float'>

Можно сделать и наоборот – преобразовать единицу в True, а ноль – в False. Но на самом деле любое число, не равное нулю, преобразуется в True.

is_true = 12               # Присваиваем переменной ненулевое число
is_false = 0               # Присваиваем переменной число 0

is_true = bool(is_true)    # Преобразуем числа в логические значения
is_false = bool(is_false)

print(is_true)             # Выводим значения переменных и их типы
print(type(is_true))
print(is_false)
print(type(is_false))

выводит:

True
<class 'bool'>
False
<class 'bool'>

Кстати, команда x = bool() присвоит переменной x значение False. Просто запомните это.

Тест по пройденному материалу