Question Valeurs maximales et minimales pour ints


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?


460
2017-09-30 01:01


origine


Réponses:


Python 3

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.

Python 2

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.


521
2017-09-30 01:03



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.

Référer : https://docs.python.org/3/whatsnew/3.0.html


169
2017-09-30 13:12



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.


114
2018-05-18 12:58



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 que 1l 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

70
2017-09-30 01:07



Pour Python 3, c'est

import sys
max = sys.maxsize
min = -sys.maxsize -1

16
2018-03-02 00:09



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 à

https://docs.python.org/3/library/sys.html


0
2018-06-10 23:49