Какое максимальное значение Integer в Python 3?

Всем доброго времени суток! Много лет программирую на PHP и вот решил выучить Python. И буквально на первых этапах обучения открыл для себя интересную особенность языка, описание которой нигде не нашел. А именно речь идет о максимальном значении Int. В книжке написано, что оно как и во всех основных языках программирования равно 2 147 483 647. Все что выше это уже как минимум long, но есть одно но...

x = 2147483647 ** 20000

print(type(x))
print(str(x).__len__())


Данный скрипт выдает тип Int, при том, что результирующее число превышает все мыслимые и немыслимые границы. И print(x) выводит число, как есть, а не в экспоненциальном виде, как это делает например PHP. Подскажите почему так происходит?
  • Вопрос задан
  • 43066 просмотров
Решения вопроса 1
Rrooom
@Rrooom
На все мыслимые и немыслимые вопросы уже давно есть ответы - stackoverflow.com/questions/9860588/maximum-value-...

PS Ну какие нафих книги? Они отстой. Читайте доки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
В Python используется длинная арифметика. Кроме того в Python3 нет больше long, есть только int. Да и до Python3 между int и long было прозрачное преобразование.
Ответ написан
Комментировать
@zedxxx
Потому что: python3porting.com/differences.html#long

Python 2 has two integer types int and long. These have been unified in Python 3, so there is now only one type, int

В книжке написано, что оно как и во всех основных языках программирования равно 2 147 483 647

Плюс ко всему, размер int во втором питоне зависит ещё и от разрядности питона. А книжки они такие, да.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы