Пара фактов о численных типах

(которые вы, возможно, не знали)



Факт 1



В Python есть три встроенных численных типа. Кроме int и float, которыми мы обычно пользуемся, есть еще complex — комплексные числа.



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



Сконструировать комплексное число в Python можно так:



a = complex(2, 1)



или вот так:



a = 2 + 1j



Получится одно и то же.



Факт 2



Все численные типы в Python унаследованы от класса Number. Проверить это можно так:



from numbers import Number



isinstance(1984, Number) #True

isinstance(3.1415926, Number) #True

isinstance(1j, Number) #True



Кстати, сюрприз: bool тоже унаследован от Number:



isinstance(False, Number) #True



Факт 3



Под капотом логический тип — те же числа, только bool имеет всего два значения: 0 и 1. Это обеспечивает нам легкое приведение True к единице, а False к нулю.



Это же, впрочем, дает ни разу не интуитивное поведение в некоторых случаях:



1/False # ZeroDivisionError: division by zero



my_list = [1, 2, 3, 4]

my_list[False] # 1



"False"[True] # a



А, и да



Факт 4



Complex не является составным типом. Это просто объект, который принимает до двух параметров при инициализации.



Такие дела!🤗