
En Python3, int n’a pas de limite maximale.
Python2 a deux types entiers, int et long, mais Python3 n’a que int. int en Python3 est équivalent à long en Python2, et il n’y a pas de limite max. Vous pouvez gérer une valeur aussi grande que la mémoire disponible.
Cet article décrit le contenu suivant.
- int et long en Python2
- int en Python3 n’a pas de limite maximale
Consultez l’article suivant pour connaître les valeurs maximales et minimales du nombre à virgule flottante float.
Notez que NumPy utilise des types de données avec un nombre fixe de bits, tels que int32 (entier 32 bits) et int64 (entier 64 bits).
int et long en Python2
Python2 a deux types d’entiers, int et long.
Vous pouvez obtenir la valeur maximale de int avec sys.maxint. La valeur min (la plus grande valeur négative) est -sys.maxint-1.
sys.maxint est au moins 2**31-1, et sur un environnement 64 bits, c’est 2**63-1.
long n’a pas de limite maximale et minimale.
int en Python3 n’a pas de limite maximale
int en Python3 correspond à long en Python2, et il n’y a pas de limite max et min.
La constante sys.maxint a été supprimée, car il n’y a plus de limite à la valeur des nombres entiers. Cependant, sys.maxsize peut être utilisé comme un entier plus grand que n’importe quelle liste pratique ou index de chaîne. Il est conforme à la taille entière « naturelle » de l’implémentation et est généralement identique à sys.maxint dans les versions précédentes sur la même plate-forme (en supposant les mêmes options de génération).
Quoi de neuf dans Python 3.0 — Documentation Python 3.8.4
Dans Python3, sys.maxint a été supprimé et sys.maxsize a été ajouté.
sys.maxsize vaut 2**31-1 dans un environnement 32 bits et 2**63-1 dans un environnement 64 bits, comme sys.maxint dans Python2.
import sys
print(sys.maxsize)
# 9223372036854775807
print(type(sys.maxsize))
# <class 'int'>
print(sys.maxsize == 2**63 - 1)
# True
Converti en nombres binaires et hexadécimaux avec bin() et hex(), sys.maxsize est exprimé comme suit.
print(bin(sys.maxsize))
# 0b111111111111111111111111111111111111111111111111111111111111111
print(hex(sys.maxsize))
# 0x7fffffffffffffff
sys.maxsize n’est pas la valeur maximale de int, et vous pouvez gérer des valeurs plus grandes car la mémoire est disponible.
i = 10**100
print(i)
# 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
print(i > sys.maxsize)
# True
Le nombre à virgule flottante float a inf représentant l’infini. inf est jugé supérieur à toute valeur de int.
print(float('inf'))
# inf
print(i > float('inf'))
# False
Voir l’article suivant sur infinity inf.
