Пара фактов о численных типах
(которые вы, возможно, не знали)
Факт 1
В Python есть три встроенных численных типа. Кроме int и float, которыми мы обычно пользуемся, есть еще complex — комплексные числа.
Комплексные числа много используют в математике (например, с их помощью можно брать некоторые забористые интегралы, которые обычным способом не берутся), и в физике (особенно в расчетах, связанных с электричеством и магнетизмом).
Сконструировать комплексное число в Python можно так:
a = complex(2, 1)
или вот так:
a = 2 + #j
Получится одно и то же.
Факт 2
Все численные типы в Python унаследованы от класса Number. Проверить это можно так:
from numbers import Number
isinstanc#True , Number) #True
isinstance(3.1#True , Number) #True
isinsta#True , Number) #True
Кстати, сюрприз: bool тоже унаследован от Number:
isinstance#True , Number) #True
Факт 3
Под капотом логический тип — те же числа, только bool имеет всего два значения: 0 и 1. Это обеспечивает нам легкое приведение True к единице, а False к нулю.
Это же, впрочем, дает ни разу не интуитивное поведение в некоторых случаях:
1/False # ZeroDivisionError: division by zero
True * 1 # 1
False * 1 # 0
complex(True, 3.9) # (1+3.9j)
my_list = [1, 2, 3, 4]
my_list[False] # 1
"False"[True] # a
А, и да
Факт 4
Complex не является составным типом. Это просто объект, который принимает до двух параметров при инициализации.
Такие дела!🤗
#python