Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 37

Насколько объемен тип int?

В 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