it-swarm.com.de

Maximal- und Mindestwerte für Ints

Ich suche nach minimalen und maximalen Werten für ganze Zahlen in Python. In Java beispielsweise haben wir Integer.MIN_VALUE und Integer.MAX_VALUE. Gibt es so etwas in Python?

532
bdhar

Python 3

In Python 3 trifft diese Frage nicht zu. Der einfache int-Typ ist unbegrenzt.

Möglicherweise suchen Sie jedoch nach der Word-Größe des Computers. Das ist in Python 3 noch als sys.maxsize verfügbar. 

Python 2

In Python 2 ist der Maximalwert für einfache int-Werte als sys.maxint verfügbar:

>>> sys.maxint
9223372036854775807

Sie können den Mindestwert mit -sys.maxint - 1 wie hier hier berechnen. 

Python wechselt nahtlos von einfachen zu langen ganzen Zahlen, sobald Sie diesen Wert überschreiten. Daher müssen Sie es meistens nicht wissen.

613
senderle

Die Konstante sys.maxint wurde ab Python 3.0 entfernt. Verwenden Sie stattdessen sys.maxsize.

Ganzzahlen

  • PEP 237: Im Wesentlichen umbenannt in int. Das heißt, es gibt nur einen integrierten Typ mit dem Namen int. aber es verhält sich meistens wie alter langer Typ.
  • PEP 238: Ein Ausdruck wie 1/2 gibt einen Float zurück. Verwenden Sie 1 // 2, um das Abschneideverhalten abzurufen. (Die letzte Syntax existiert schon seit Jahren, mindestens seit Python 2.2.).
  • Die sys.maxint-Konstante wurde entfernt, da der Wert von Ganzzahlen nicht mehr begrenzt ist. Sys.maxsize kann jedoch als .__ verwendet werden. Ganzzahl größer als eine praktische Liste oder ein String-Index. Es entspricht Die "natürliche" Ganzzahl der Implementierung ist in der Regel dieselbe als sys.maxint in früheren Releases auf derselben Plattform (vorausgesetzt, die gleichen Build-Optionen).
  • Das repr () einer langen Ganzzahl enthält nicht mehr das abschließende L, sodass der Code, der das Zeichen bedingungslos entfernt, das .__ abhackt. letzte Stelle stattdessen. (Verwenden Sie stattdessen str ().)
  • Oktal-Literale haben nicht mehr die Form 0720; Verwenden Sie stattdessen 0o720.

Siehe: https://docs.python.org/3/whatsnew/3.0.html

185
Akash Rana

Wenn Sie nur eine Nummer benötigen, die größer ist als alle anderen, können Sie sie verwenden

float('inf')

in ähnlicher Weise eine Zahl kleiner als alle anderen:

float('-inf')

Dies funktioniert in Python 2 und 3.

144
Melle

In Python werden Ganzzahlen automatisch von einer int-Darstellung mit fester Größe in eine variable width long -Darstellung gewechselt, sobald Sie den Wert sys.maxint übergeben, der entweder 2 ist31 - 1 oder 263 - 1 abhängig von Ihrer Plattform. Beachten Sie die L, die hier angehängt wird:

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

Aus dem Python-Handbuch :

Zahlen werden durch numerische Literale oder als Ergebnis von integrierten Funktionen und Operatoren erstellt. Ungeschmückte ganzzahlige Literale (einschließlich Binär-, Hex- und Oktalzahlen) ergeben einfache Ganzzahlen, es sei denn, der angegebene Wert ist zu groß, um als reine Ganzzahl dargestellt zu werden. In diesem Fall liefern sie eine lange Ganzzahl. Ganzzahlige Literale mit einem Suffix 'L' oder 'l' ergeben lange Ganzzahlen ('L' wird bevorzugt, da 1l zu elf aussieht!).

Python versucht sehr zu behaupten, dass die Ganzzahlen mathematische Ganzzahlen sind und keine Grenzen haben. Es kann zum Beispiel ein googol mit Leichtigkeit berechnen:

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
73
John Kugelman

Für Python 3 ist es das

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

Ich verlasse mich stark auf solche Befehle.

python -c 'import sys; print(sys.maxsize)'

Max int zurückgegeben: 9223372036854775807

Für weitere Referenzen für 'sys' sollten Sie darauf zugreifen

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

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

1
Wender

Sie können 'inf' wie folgt verwenden: import math bool_true = 0<math.inf bool_false = 0<-math.inf

Siehe: Mathematik - Mathematische Funktionen

1
Nimbal Rahul

Wenn Sie den Maximalwert für Array- oder Listenindizes (entsprechend size_t in C/C++) wünschen, können Sie numpy verwenden:

np.iinfo(np.intp).max

Dies ist dasselbe wie sys.maxsize, jedoch ist der Vorteil, dass Sie dazu nicht nur Import-Systeme benötigen.

Wenn Sie max für natives int auf dem Computer wünschen:

np.iinfo(np.intc).max

Sie können sich andere verfügbare Typen in doc ansehen.

Für Floats können Sie auch sys.float_info.max verwenden.

0
Shital Shah

Mit sys Modul (Python 3)

import sys

INT_MAX = sys.maxsize  

INT_MIN = -sys.maxsize-1


print(INT_MAX,INT_MIN)
0
Deep Nirmal