В Python 2 размер переменной типа int был ограничен 32 битами. Этого было до-
статочно для того, чтобы сохранить любое целое число в диапазоне от –2 147 483 648
до 2 147 483 647.
Для переменных типа long выделялось еще больше места — 64 бита, что позволяло
хранить значения в диапазоне от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807.
В Python 3 тип long отсутствует, а переменная типа int может быть любого раз-
мера — даже больше 64 бит. Поэтому вы можете выполнить арифметические дей-
ствия наподобие следующих (10**100 называется гугол (googol), компания Google
называлась так до того, как решила сменить свое название на более простое):
>>>
>>> googol = 10**100
>>> googol
100000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000
>>> googol * googol
100000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000
Во многих языках программирования этот пример вызовет так называемое пере-
полнение целочисленного значения, когда числу нужно больше места, чем компьютер
может предоставить, что приведет к разным нежелательным эффектам. Python обра-
батывает огромные целые числа без всяких проблем. Одно очко для Python.
Числа с плавающей точкой
Значениями целочисленного типа являются целые числа, но числа с плавающей
точкой (в Python они называются float) имеют десятичную запятую. Числа с пла-
вающей точкой обрабатываются так же, как и целые: вы можете использовать опе-
раторы +, –, *, /, //, **, % и функцию divmod().
56
Глава 2. Ингредиенты Python: числа, строки и переменные
Для того чтобы преобразовать другие типы в тип float, следует использовать
функцию float(). Как и ранее, булевы значения обрабатываются как небольшие
числа:
>>> float(True)
1.0
>>> float(False)
0.0
Преобразование значения типа int в тип float лишь создаст счастливого об-
ладателя десятичной запятой:
>>> float(98)
98.0
>>> float('99')
99.0
Вы также можете преобразовывать строки, содержащие символы, которые
являются корректным числом с плавающей точкой (цифры, знаки, десятичная
запятая или е, за которой следует экспонента):
>>> float('98.6')
98.6
>>> float('-1.5')
-1.5