Comment puis-je attribuer la valeur maximale d'un entier long d'une variable, semblable, par exemple, pour C++ LONG_MAX
.
Réponses
Trop de publicités?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
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.
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.
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.