J'ai essayé de trouver comment représenter un entier maximum, et j'ai lu qu'il fallait utiliser "sys.maxint"
. Cependant, en Python 3, lorsque je l'appelle, j'obtiens :
AttributeError: module 'object' has no attribute 'maxint'
J'ai essayé de trouver comment représenter un entier maximum, et j'ai lu qu'il fallait utiliser "sys.maxint"
. Cependant, en Python 3, lorsque je l'appelle, j'obtiens :
AttributeError: module 'object' has no attribute 'maxint'
La constante sys.maxint a été supprimée, puisqu'il n'existe plus de limite à la valeur des entiers. Cependant, sys.maxsize peut être utilisé comme une constante entier plus grand que tout index pratique de liste ou de chaîne. Il est conforme à la taille "naturelle" des entiers de l'implémentation et est typiquement la même que que sys.maxint dans les versions précédentes sur la même plate-forme (en supposant que les mêmes options de compilation).
Comme l'ont fait remarquer d'autres personnes, la version de Python 3 int
n'a pas de taille maximale, mais si vous avez juste besoin de quelque chose qui est garanti d'être plus élevé que n'importe quelle autre int
vous pouvez alors utiliser la valeur flottante pour Infinity, que vous pouvez obtenir avec float("inf")
.
Note : comme le commentaire d'ely, cela peut avoir un impact sur l'efficacité de votre code, donc ce n'est peut-être pas la meilleure solution.
Si vous cherchez un chiffre qui soit plus grand que tous les autres :
Méthode 1 :
float('inf')
Méthode 2 :
import sys
max = sys.maxsize
Si vous cherchez un chiffre plus petit que tous les autres :
Méthode 1 :
float('-inf')
Méthode 2 :
import sys
min = -sys.maxsize - 1
La méthode 1 fonctionne à la fois dans Python2 et Python3. La méthode 2 fonctionne dans Python3. Je n'ai pas essayé la méthode 2 dans Python2.
Les ints de Python 3 n'ont pas de maximum.
Si votre objectif est de déterminer la taille maximale d'un int en C lorsqu'il est compilé de la même manière que Python, vous pouvez utiliser le module struct pour le découvrir :
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
Si vous êtes curieux de connaître les détails de l'implémentation interne des objets int de Python 3, regardez à l'adresse suivante sys.int_info
pour les détails sur les bits par chiffre et la taille des chiffres. Aucun programme normal ne devrait s'en préoccuper.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.