Python의 sys.maxint
프로그래밍에서는 최대/INT_MAX 정수로 나타낼 수 있는 가장 높은 값을 나타냅니다. 어떤 경우에는 프로그래밍하는 동안 다른 정수 값보다 큰 값을 할당해야 할 수도 있습니다. 일반적으로 그러한 값을 수동으로 할당합니다. 예를 들어, 다음을 사용하여 최소값을 찾아야 하는 정수 목록을 생각해 보세요. for 루프 .
파이썬
# initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value manually> curr_min> => 999999> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
산출
The minimum value is -22
위의 접근 방식에서 우리는 다음과 같이 가정합니다. 999999 는 목록에서 가능한 최대값이며, 이 값보다 작은 값이 발견되면 업데이트하기 위해 다른 요소와 비교합니다.
Python의 sys 모듈
이 모듈은 인터프리터와 상호 작용하고 인터프리터가 유지 관리하는 변수에 액세스하는 데 사용됩니다. 런타임 환경에서 조작을 수행하는 데 사용할 수 있습니다. 이 패키지의 기능을 활용하려면 다른 패키지처럼 가져와야 합니다. 파이썬의 sys 모듈 다양한 함수와 상수를 제공하며 그 중 상수는 맥신트 , 이는 다른 정수보다 크다고 보장되는 양의 정수 값을 설정하는 데 사용할 수 있습니다. 아래 예를 살펴보세요.
파이썬
# import the module> import> sys> > # initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value with> # maxint constant> curr_min> => sys.maxint> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser> > # than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
산출
The minimum value is -22
위 프로그램에서는 수동으로 더 큰 값을 할당하는 대신, sys.maxint 사용. 이 상수는 Python 버전 2.x에서 지원됩니다. 상수로 표시되는 값은 다음과 같이 계산할 수 있습니다.
최대값 = 2 31 – 1(32비트 환경)
최대값 = 2 63 – 1(64비트 환경)
~ 안에 파이썬 2 , maxint에 1을 추가하면 가능한 가장 높은 값이 제공됩니다. 긴 정수 그리고 파이썬 2.7 , maxint에서 1을 빼면 다음이 됩니다. 정수에 대해 가능한 가장 작은 값 .
파이썬
# import the module> import> sys> > max_int> => sys.maxint> min_int> => sys.maxint> -> 1> long_int> => sys.maxint> +> 1> > print> (> 'maxint :'> +> str> (max_int)> +> ' - '> +> str> (> type> (max_int)))> print> (> 'maxint - 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (min_int)))> print> (> 'maxint + 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (long_int)))> |
산출
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -
이 상수는 다음에서 제거되었습니다. 파이썬 3 , 이 버전의 정수는 임의의 길이로 간주됩니다. Python 3에서 이 상수를 사용하면 다음 오류가 발생합니다. 최소값 요소를 목록에서 찾아야 하는 동일한 예를 고려하십시오.
파이썬3
import> sys> > # initializing the list> li> => [> 1> ,> -> 22> ,> 43> ,> 89> ,> 2> ,> 6> ,> 3> ,> 16> ]> > # assigning a larger value with maxint constant> curr_min> => sys.maxint> > # loop to find minimum value> for> i> in> range> (> 0> ,> len> (li)):> > > # update curr_min if a value lesser than it is found> > if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))> |
출력 :
AttributeError: module 'sys' has no attribute 'maxint'
정수 값에 더 이상 제한이 없으므로 이 상수는 제거되었습니다. ~ 안에 파이썬 3, 이와 유사한 상수가 도입되었습니다. sys.maxsize . 변수 유형의 가능한 가장 높은 정수 값을 반환합니다. Py_ssize_t 또한 플랫폼의 포인터 크기를 나타냅니다. 이 최대 크기는 문자열 및 목록과 같은 다양한 데이터 구조의 크기를 제한하는 것으로 간주됩니다. 주목해야 할 또 다른 점은 Python 3에서는 정수 그리고 긴 정수 하나로 병합됩니다. 더 나은 이해를 위해 아래 예를 살펴보십시오.
파이썬3
# import the module> import> sys> > # using sys.maxsize> max_int> => sys.maxsize> min_int> => sys.maxsize> -> 1> long_int> => sys.maxsize> +> 1> > print> (> 'maxint :'> +> str> (max_int)> +> ' - '> +> str> (> type> (max_int)))> print> (> 'maxint - 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (min_int)))> > # the data type is represented as int> print> (> 'maxint + 1 :'> +> str> (max_int)> +> ' - '> +> str> (> type> (long_int)))> |
산출
maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 -