Я намагався з'ясувати, як представити максимальне ціле число, і я прочитав, щоб використовувати "sys.maxint"
. Однак у Python 3, коли я його називаю, я отримую:
AttributeError: module 'object' has no attribute 'maxint'
Я намагався з'ясувати, як представити максимальне ціле число, і я прочитав, щоб використовувати "sys.maxint"
. Однак у Python 3, коли я його називаю, я отримую:
AttributeError: module 'object' has no attribute 'maxint'
Відповіді:
Константа sys.maxint була видалена, оскільки більше немає обмеження на значення цілих чисел. Однак sys.maxsize може використовуватися як ціле число, що перевищує будь-який практичний список або індекс рядка. Він відповідає "натуральному" цілому розміру реалізації і, як правило, такий же, як sys.maxint у попередніх випусках на тій же платформі (при умові, що ті ж варіанти збірки).
Як зазначають інші, Python 3 int
не має максимального розміру, але якщо вам просто потрібно щось, що гарантовано буде вище, ніж будь-яке інше int
значення, то ви можете використовувати значення float для Infinity, яке ви можете отримати float("inf")
.
Python 3 ints не мають максимуму.
Якщо ваша мета полягає в тому, щоб визначити максимальний розмір int в C, коли компілювався так само, як і Python, ви можете використовувати модуль struct, щоб дізнатися:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
Якщо вам цікаво детальна інформація про внутрішню реалізацію об'єктів Python 3 int, подивіться на sys.int_info
біти на цифру та деталі розміру цифр. Жодна нормальна програма не повинна перейматися цим.
Якщо ви шукаєте число, яке більше, ніж усі інші:
Спосіб 1:
float('inf')
Спосіб 2:
import sys
max = sys.maxsize
Якщо ви шукаєте номер, менший за всі інші:
Спосіб 1:
float('-inf')
Спосіб 2:
import sys
min = -sys.maxsize - 1
Спосіб 1 працює і в Python2, і в Python3. Спосіб 2 працює в Python3. Я не пробував метод 2 в Python2.
Альтернативою є
import math
... math.inf ...