Je suis à la recherche de valeurs minimum et maximum pour les entiers en python. Par exemple, en Java, nous avons Integer.MIN_VALUE
et Integer.MAX_VALUE
. Y a-t-il quelque chose comme ça en python?
Je suis à la recherche de valeurs minimum et maximum pour les entiers en python. Par exemple, en Java, nous avons Integer.MIN_VALUE
et Integer.MAX_VALUE
. Y a-t-il quelque chose comme ça en python?
En Python 3, cette question ne s'applique pas. La plaine int
le type est illimité.
Cependant, vous pourriez être à la recherche de la machine taille de mot. C'est toujours disponible dans Python 3 comme sys.maxsize
.
En Python 2, la valeur maximale pour la plaine int
valeurs est disponible en tant que sys.maxint
:
>>> sys.maxint
9223372036854775807
Vous pouvez calculer la valeur minimale avec -sys.maxint - 1
comme montré ici.
Python passe de façon transparente des entiers simples aux entiers longs une fois que vous avez dépassé cette valeur. Donc, la plupart du temps, vous n'aurez pas besoin de le savoir.
sys.maxint La constante a été supprimée de Python 3.0, utilisez plutôt sys.maxsize
Entiers
- PEP 237: Essentiellement, long renommé en int. C'est-à-dire qu'il n'y a qu'un seul type intégral intégré, nommé int; mais il se comporte principalement comme le vieux type long.
- PEP 238: une expression comme 1/2 renvoie un flottant. Utilisez 1 // 2 pour obtenir le comportement de troncature. (La dernière syntaxe existe depuis des années, à moins depuis Python 2.2.)
- La constante sys.maxint a été supprimée, car il n'y a plus de limite à la valeur des entiers. Cependant, sys.maxsize peut être utilisé comme nombre entier supérieur à toute liste pratique ou index de chaîne. Il est conforme à la taille entière "naturelle" de l'implémentation et est généralement la même comme sys.maxint dans les versions précédentes sur la même plate-forme (en supposant mêmes options de construction).
- Le repr () d'un entier long n'inclut plus le L final, de sorte que le code qui supprime inconditionnellement ce caractère va couper le dernier chiffre à la place. (Utilisez plutôt str ()).
- Les littéraux octaux ne sont plus de la forme 0720; utilisez plutôt 0o720.
Si vous avez juste besoin d'un nombre plus grand que tous les autres, vous pouvez utiliser
float('inf')
de la même manière, un nombre plus petit que tous les autres:
float('-inf')
Cela fonctionne à la fois dans Python 2 et 3.
En Python, les entiers passeront automatiquement d'une taille fixe int
représentation en largeur variable long
représentation une fois que vous passez la valeur sys.maxint
, qui est soit 231 - 1 ou 263 - 1 selon votre plateforme. Notez le L
qui est ajouté ici:
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Du Python manuel:
Les nombres sont créés par des littéraux numériques ou par des fonctions et des opérateurs intégrés. Les littéraux entiers sans fioritures (y compris les nombres binaires, hexadécimaux et octaux) donnent des entiers simples à moins que la valeur qu'ils indiquent soit trop grande pour être représentée sous la forme d'un entier simple, auquel cas ils génèrent un entier long. Littéraux entiers avec un
'L'
ou'l'
suffixe donnent des entiers longs ('L'
est préféré parce que1l
ressemble trop à onze!).
Python essaie très fort de prétendre que ses entiers sont des entiers mathématiques et sont sans limites. Il peut, par exemple, calculer un googol avec facilité:
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Pour Python 3, c'est
import sys
max = sys.maxsize
min = -sys.maxsize -1
Je compte beaucoup sur des commandes comme celle-ci.
python -c 'import sys; print(sys.maxint)'
Max int retourné: 9223372036854775807
Pour plus de références pour «sys», vous devez accéder à