[python] 정수의 최대 값 및 최소값

파이썬에서 정수의 최소값과 최대 값을 찾고 있습니다. 예를 들어., 자바, 우리가 Integer.MIN_VALUE하고 Integer.MAX_VALUE. 파이썬에서 이와 같은 것이 있습니까?



답변

파이썬 3

파이썬 3에서는이 질문이 적용되지 않습니다. 일반 int유형은 제한이 없습니다.

그러나 실제로 현재 통역사의 단어 크기 에 대한 정보를 찾고 있을 수 있습니다. 대부분의 경우 기계의 단어 크기와 같습니다. 이 정보는 Python 3에서 여전히 사용할 수 있으며 sys.maxsize이는 부호있는 단어로 표현할 수있는 최대 값입니다. 마찬가지로, 가능한 가장 큰 목록 또는 인 메모리 시퀀스 의 크기입니다 .

일반적으로 부호없는 단어로 표시 할 수있는 최대 값은 sys.maxsize * 2 + 1이고 단어의 비트 수는입니다 math.log2(sys.maxsize * 2 + 2). 자세한 내용은 이 답변 을 참조하십시오.

파이썬 2

Python 2에서 일반 int값 의 최대 값은 다음과 sys.maxint같습니다.

>>> sys.maxint
9223372036854775807

여기에-sys.maxint - 1 표시된대로 최소값을 계산할 수 있습니다 .

이 값을 초과하면 Python은 일반 정수에서 긴 정수로 완벽하게 전환됩니다. 따라서 대부분의 경우 알 필요가 없습니다.


답변

다른 모든 것보다 큰 숫자가 필요하면

float('inf')

비슷한 방식으로 다른 모든 것보다 작은 숫자 :

float('-inf')

이것은 파이썬 2와 3 모두에서 작동합니다.


답변

sys.maxint상수는 이후 대신 사용 파이썬 3.0에서 제거되었습니다 sys.maxsize.

정수

  • PEP 237 : 기본적으로 긴 이름이 int로 바뀌 었습니다. 즉, int라는 하나의 내장 정수 유형 만 있습니다. 그러나 그것은 주로 오래 된 긴 유형처럼 행동합니다.
  • PEP 238 : 1/2와 같은 표현식은 부동 소수점을 반환합니다. 절단 동작을 얻으려면 1/2을 사용하십시오. (후자의 구문은 적어도 Python 2.2 이후 수년간 존재했습니다.)
  • 더 이상 정수 값에 대한 제한이 없으므로 sys.maxint 상수가 제거되었습니다. 그러나 sys.maxsize는 실제 목록 또는 문자열 인덱스보다 큰 정수로 사용할 수 있습니다. 구현의 “자연적인”정수 크기를 따르며 일반적으로 동일한 빌드 옵션에서 동일한 플랫폼의 이전 릴리스에서 sys.maxint와 동일합니다.
  • 긴 정수의 repr ()은 더 이상 후행 L을 포함하지 않으므로 해당 문자를 무조건 제거하는 코드는 대신 마지막 숫자를 잘라냅니다. 대신에 str ()을 사용하십시오.
  • 8 진 리터럴은 더 이상 0720 형식이 아닙니다. 대신 0o720을 사용하십시오.

참조 : https://docs.python.org/3/whatsnew/3.0.html#integers


답변

파이썬에서는 정수가 플랫폼에 따라 2 31-1 또는 2 63-1 인 값을 전달하면 고정 크기 int표현에서 가변 폭 long표현 으로 자동 전환 됩니다. 통지 여기에 추가 가도록를 :sys.maxintL

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

로부터 파이썬 설명서 :

숫자는 숫자 리터럴 또는 내장 함수 및 연산자의 결과로 생성됩니다. 표시되지 않은 정수 리터럴 (2 진, 16 진 및 8 진수 포함)은 표시하는 값이 너무 커서 일반 정수로 표현할 수없는 경우 일반 정수를 생성합니다.이 경우 긴 정수를 생성합니다. 'L'또는 'l'접미사 가있는 정수 리터럴은 긴 정수를 생성합니다 ( 11보다 너무 많이 보이기 'L'때문에 선호됩니다 1l).

파이썬은 정수가 수학적인 정수이며 끝이 없다고 가장 열심히 노력합니다. 예를 들어, googol 을 쉽게 계산할 수 있습니다.

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L


답변

파이썬 3의 경우

import sys
max = sys.maxsize
min = -sys.maxsize - 1


답변

다음과 같이 ‘inf’를 사용할 수 있습니다.

import math
bool_true = 0 < math.inf
bool_false = 0 < -math.inf

참조 : math — 수학 함수


답변

배열 또는 목록 인덱스의 최대 값 ( size_tC / C ++ 과 동일)을 원하면 numpy를 사용할 수 있습니다.

np.iinfo(np.intp).max

이것은와 동일 sys.maxsize장점은 바로 이것에 대한 수입에서 sys 필요가 없다는 것입니다 그러나.

머신에서 native int에 대해 max를 원한다면 :

np.iinfo(np.intc).max

doc 에서 사용 가능한 다른 유형을 볼 수 있습니다 .

플로트의 경우을 사용할 수도 있습니다 sys.float_info.max.