Je recherche les valeurs minimales et maximales des entiers en python. Par exemple, en Java, nous avons Integer.MIN_VALUE
et Integer.MAX_VALUE
. Existe-t-il quelque chose de semblable en python ?
Dans Python 3, cette question ne s’applique pas. Le type simple int
est non borné.
Cependant, il se peut que vous cherchiez à connaître la [taille des mots] de la machine (http://en.wikipedia.org/wiki/Word_(computer_architecture)#Table_of_word_sizes). Cela est toujours disponible dans Python 3 sous le nom de sys.maxsize
.
Dans Python 2, la valeur maximale pour les valeurs int
simples est disponible sous la forme sys.maxint
:
>>> sys.maxint
9223372036854775807
Vous pouvez calculer la valeur minimale avec -sys.maxint - 1
comme indiqué ici.
Python passe sans problème des entiers simples aux entiers longs dès que vous dépassez cette valeur. Ainsi, la plupart du temps, vous n'aurez pas besoin de la connaître.
La constante sys.maxint a été supprimée à partir de Python 3.0, utilisez plutôt sys.maxsize.
Entiers
- PEP 237 : Essentiellement, long a été 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 l'ancien type long. l'ancien type long.
- PEP 238 : Une expression comme 1/2 renvoie un float. Utilisez 1//2 pour obtenir le comportement de troncature. (Cette dernière syntaxe existe depuis des années, au moins depuis Python. au moins depuis Python 2.2).
- La constante sys.maxint a été supprimée, puisqu'il n'y a plus de limite à la valeur des entiers. Cependant, sys.maxsize peut être utilisé comme un 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 sys.maxsize. sys.maxint dans les versions précédentes sur la même plate-forme (en supposant les mêmes options de construction). mêmes options de construction). Le repr() d'un entier long n'inclut plus le L de fin, donc le code qui supprime inconditionnellement ce caractère coupera le dernier chiffre à la place. dernier chiffre à la place. (Utilisez str() à la place).
- Les littéraux octaux ne sont plus de la forme 0720 ; utilisez 0o720 à la place.
Référence : https://docs.python.org/3/whatsnew/3.0.html
En Python, les entiers passent automatiquement d'une représentation int
de taille fixe à une représentation [long
] (http://docs.python.org/library/sys.html#sys.long_info) de largeur variable dès que vous passez la valeur [sys.maxint
] (http://docs.python.org/library/sys.html#sys.maxint), qui est soit 231 - 1, soit 263 - 1, selon votre plate-forme. Remarquez le L
qui est ajouté ici :
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Extrait du [manuel Python] (http://docs.python.org/library/stdtypes.html#typesnumeric) :
Les nombres sont créés par des littéraux numériques ou comme résultat de fonctions et opérateurs intégrés. Les littéraux entiers non ornés (y compris les nombres binaires, hexagonaux et octaux) produisent des entiers ordinaires, à moins que la valeur qu'ils désignent soit trop grande pour être représentée comme un entier ordinaire, auquel cas ils produisent un entier long. Les littéraux entiers avec un suffixe
'L'
ou'l'
donnent des entiers longs ('L'
est préféré car1l
ressemble trop à onze !).
Python essaie très fort de faire croire que ses entiers sont des entiers mathématiques et qu'ils ne sont pas limités. Il peut, par exemple, calculer facilement un googol :
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L