当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sys.maxint用法及代码示例


在编程中,maxint /INT_MAX表示可以由整数表示的最大值。在某些情况下,在编程时,我们可能需要分配一个大于任何其他整数值的值。通常,人们会手动分配这些值。例如,考虑一个必须使用for循环找出最小值的整数列表。

Python

# 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:
        curr_min = li[i] 
  
print("The minimum value is " + str(curr_min))
输出
The minimum value is -22

在上面的方法中,我们假定999999是列表中的最大可能值,并将其与其他元素进行比较以在找到小于该值的值时进行更新。

Python中的sys模块

该模块用于与解释器进行交互并访问解释器维护的变量。它可用于在运行时环境中进行操作。必须像其他软件包一样将其导入,以利用其中的函数。 Python的sys模块提供了各种函数和常量,其中常量maxint可用于设置正整数值,该值肯定大于任何其他整数。看下面的例子。

Python

# 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:
        curr_min = li[i] 
  
print("The minimum value is " + str(curr_min))
输出

The minimum value is -22

在上面的程序中,使用sys.maxint代替手动分配更大的值。 Python版本2.x支持此常量。常数表示的值可以计算为:

maxint = 231 - 1 (in 32-bit environment)

maxint = 263 - 1 (in 64-bit environment)

在Python 2中,将maxint加1可以得到尽可能长的long int,而在Python 2.7中,从maxint减去1可以得到最小的整数值。

Python

# 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 - <type 'int'>
maxint - 1:9223372036854775807 - <type 'int'>
maxint + 1:9223372036854775807 - <type 'long'>

该常量已从Python 3中删除,因为此版本中的整数被认为具有任意长度。如果在Python 3中使用此常量,则将出现以下错误。考虑同一示例,其中必须从列表中找出最小值元素。

Python3

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:
        curr_min = li[i] 
  
print("The minimum value is " + str(curr_min))

输出:

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

由于不再限制整数值,因此删除了此常数。在Python 3中,引入了与此类似的常量sys.maxsize。这将返回变量类型Py_ssize_t的最大可能整数值,并且它还表示平台的指针大小。该最大大小被认为限制了各种数据结构(如字符串和列表)的大小。需要注意的另一件事是,在Python 3中,int和long int合并为一个。请看下面的示例,以更好地理解。

Python3

# 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 - <class 'int'>
maxint - 1:9223372036854775807 - <class 'int'>
maxint + 1:9223372036854775807 - <class 'int'>




注:本文由纯净天空筛选整理自erakshaya485大神的英文原创作品 sys.maxint in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。