113 votes

Le Maximum de valeur de type entier long

Comment puis-je attribuer la valeur maximale d'un entier long d'une variable, semblable, par exemple, pour C++ LONG_MAX.

139voto

keyser Points 5842

Entiers longs:

Il n'est pas explicitement défini de limite. La quantité d'adresses disponibles dans l'espace est à une limite pratique.
(Prises à partir de ce site). Voir la documentation sur les Types Numériques où vous verrez qu' Long integers have unlimited precision. Entiers de passer automatiquement à longs quand ils grandissent au-delà de leur limite:

>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>


pour les entiers, nous avons

maxint et maxsize:

La valeur maximale d'un int peut être trouvé en Python 2.x sys.maxint. Il a été supprimé en Python 3, mais sys.maxsize peut souvent être utilisé à la place. De le changelog:

Le sys.exemple maxint constante a été supprimé, 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 la pratique de la liste ou de la chaîne de l'index. Il est conforme à la mise en œuvre du "naturel" d'entier de taille et est généralement le même en tant que sys.exemple maxint dans les versions précédentes sur la même plate-forme (en supposant que le même les options de compilation).

et, pour quiconque s'intéresse à la différence (Python 2.x):

sys.exemple maxint Le plus grand entier positif pris en charge par le Python ordinaire type entier. C'est au moins 2**31-1. Le plus grand nombre entier négatif est -exemple maxint-1 - l'asymétrie résultats de l'utilisation de complément de 2 l'arithmétique binaire.

sys.maxsize Le plus grand entier positif pris en charge par la plate-forme Py_ssize_t type, et donc la taille maximale des listes, des cordes, des dicts, et de nombreux autres conteneurs peuvent avoir.

et pour être complet, voici le Python 3 version:

sys.maxsize Un entier donnant le maximum de la valeur d'une variable de type Py_ssize_t peut prendre. Il est généralement 2**31 - 1 sur une plate-forme 32 bits et 2**63 - 1 sur une plate-forme 64 bits.

flotteurs:

Il y a float("inf") et float("-inf"). Ceux-ci peuvent être comparées à d'autres types numériques:

>>> import sys
>>> float("inf") > sys.maxsize
True

42voto

Taymon Points 8103

Python longs peut être arbitrairement grand. Si vous avez besoin d'une valeur supérieure à toute autre valeur, vous pouvez utiliser float('inf'), depuis le Python n'a pas de difficulté à comparer les valeurs numériques de différents types.

23voto

John Y Points 5475

Les entiers sont illimité en taille et n'ont pas de valeur maximale en Python.

Selon votre commentaire de ce que vous essayez de le faire, vous êtes en train de penser quelque chose le long des lignes de

minval = MAXINT;
for (i = 1; i < num_elems; i++)
    if a[i] < a[i-1]
        minval = a[i];

Ce n'est pas la façon de penser en Python. Une traduction plus proche (mais toujours pas de meilleure façon) en Python est

minval = a[0]  # Just use the first value
for i in range(1, len(a)):
    minval = min(a[i], a[i - 1])

Mais ce que vous vraiment le faire en Python est juste

minval = min(a)

C'est, vous n'avez pas à écrire une boucle à tous. min obtient juste le minimum de l'ensemble de la collection.

8voto

rkhayrov Points 5829

long type en Python 2.x utilise en précision arbitraire et n'a pas une telle chose comme la valeur maximale possible. Elle est limitée par la mémoire disponible. Python 3.x n'a pas de type spécial pour les valeurs qui ne peuvent être représentées par la machine natif entier - tout est int et la conversion est traitée dans les coulisses.

7voto

Abhijit Points 24122

Contrairement au C/C++ de Long en Python ont un nombre illimité de précision. Reportez-vous à la section Types Numériques en python pour plus d'informations.Pour déterminer la valeur maximale d'un entier, vous pouvez tout simplement se référer sys.maxint. Vous pouvez obtenir plus de détails à partir de la documentation de sys.

Prograide.com

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.

Powered by:

X