sys.maxsize - 최대정수값

정리 이유

파이썬 알고리즘 인터뷰 p638 의 카데인 알고리즘을 보는데
best_sum = -sys.maxsize 라고 선언하는 부분을 처음봐서
sys.maxsize에 대해 찾아보고 정리하였다.

sys.maxsize

  • python3에서 Py_ssize_t 타입이 가질 수 있는 가장 큰 정수를 리턴하는 것이다.
  • 즉, 이 sys.maxsize 크기의 List가 python3에서 만들 수 있는 최대 크기의 List이다.
  • 일반적으로 32비트 플랫폼에서는 2^31 - 1 이고
  • 64비트 플랫폼에서는 2^63 - 1 이다.

python3에서 int 자료형 정수 최대값, 최소값

  • maximum = sys.maxsize
  • minimum = -(sys.maxsize+1)

float(‘inf’) 와의 차이

파이썬에서 코딩할 때 아주 큰 값을 잡기 위해 float(‘inf’)를 자주 사용하는데, 이는 float 자료형의 양의 무한대값이다.
무한대 값과 Py_ssize_t 타입이 가질 수 있는 가장 큰 정수 값은 서로 의미하는 것이 다르다.


float 자료형의 양의 무한대 값과 음의 무한대 값

maximum = float(‘inf’)
minimum = float(‘-inf’)


int(float(‘inf’)) 혹은 int(float(‘-inf’)) 는 불가하다.

OverflowError : cannot convert to float infinity to integer

위와 같은 오류 메세지가 뜬다.


참고 문서

https://docs.python.org/3/library/sys.html#sys.maxsize
An integer giving the maximum value a variable of type Py_ssize_t can take.
It’s usually
2^31 - 1 on a 32-bit platform
2^63 - 1 on a 64-bit platform.

https://www.python.org/dev/peps/pep-0353/
PEP 353 – Using ssize_t as the index type