IT박스

Python 3에서 sys.maxint는 무엇입니까?

itboxs 2020. 7. 7. 07:55
반응형

Python 3에서 sys.maxint는 무엇입니까?


최대 정수를 나타내는 방법을 찾으려고 노력했으며을 읽었습니다 "sys.maxint". 그러나 파이썬 3에서는 호출 할 때 다음을 얻습니다.

AttributeError: module 'object' has no attribute 'maxint'

더 이상 정수 값에 대한 제한이 없으므로 sys.maxint 상수가 제거되었습니다. 그러나 sys.maxsize는 실제 목록 또는 문자열 인덱스보다 큰 정수로 사용할 수 있습니다. 구현의 "자연적인"정수 크기를 따르며 일반적으로 동일한 빌드 옵션에서 동일한 플랫폼의 이전 릴리스에서 sys.maxint와 동일합니다.

http://docs.python.org/3.1/whatsnew/3.0.html#integers


다른 사람들이 지적했듯이, Python 3 int은 최대 크기를 갖지 않지만 다른 int보다 높은 것이 보장되어야 하는 경우 Infinity에 float 값을 사용할 수 있습니다 float("inf").


Python 3 정수에는 최대 값이 없습니다.

파이썬과 같은 방식으로 컴파일 할 때 C에서 int의 최대 크기를 결정하는 것이 목적이라면 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에서 작동합니다. Python2에서 방법 2를 시도하지 않았습니다.


Python 3의 정수 길이는 임의의 길이이므로 Python 3.0에는 더 이상 sys.maxint가 없습니다. sys.maxint 대신 sys.maxsize가 있습니다. 양의 size_t 또는 Py_ssize_t의 최대 크기

참고 URL : https://stackoverflow.com/questions/13795758/what-is-sys-maxint-in-python-3

반응형