1271 Stimmen

Höchst- und Mindestwerte für ints

Wie stelle ich Minimal- und Maximalwerte für ganze Zahlen in Python dar? In Java haben wir Integer.MIN_VALUE y Integer.MAX_VALUE .

31voto

Rahul Nimbal Punkte 509

Sie können "inf" wie folgt verwenden:

import math
bool_true = 0 < math.inf
bool_false = 0 < -math.inf

Siehe: math - Mathematische Funktionen

10voto

Shital Shah Punkte 54846

Wenn Sie den Maximalwert für Array- oder Listenindizes benötigen (äquivalent zu size_t in C/C++), können Sie numpy verwenden:

np.iinfo(np.intp).max

Dies ist dasselbe wie sys.maxsize Der Vorteil ist jedoch, dass Sie dafür nicht extra import sys benötigen.

Wenn Sie max für native int auf der Maschine wollen:

np.iinfo(np.intc).max

Weitere verfügbare Typen finden Sie unter doc .

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

6voto

Ismael Harun Punkte 113

sys.maxsize ist nicht der maximale ganzzahlige Wert, der tatsächlich unterstützt wird. Sie können maxsize verdoppeln und mit sich selbst multiplizieren und es bleibt ein gültiger und korrekter Wert.

Wenn Sie jedoch versuchen sys.maxsize ** sys.maxsize wird Ihr Rechner für eine beträchtliche Zeitspanne hängen bleiben. Wie viele darauf hingewiesen haben, scheint die Byte- und Bitgröße nicht relevant zu sein, da sie praktisch nicht existiert. Ich schätze, Python erweitert einfach fröhlich seine Ganzzahlen, wenn es mehr Speicherplatz benötigt. Im Allgemeinen gibt es also keine Begrenzung.

Wenn Sie über das Verpacken oder Speichern von Ganzzahlen auf eine sichere Weise sprechen, bei der sie später mit Integrität abgerufen werden können, dann ist das natürlich relevant. Ich bin mir beim Packen nicht sicher, aber ich kenne Python's pickle Modul geht gut mit diesen Dingen um. String-Darstellungen haben offensichtlich keine praktische Grenze.

Das Entscheidende ist also: Wo liegt die Grenze Ihrer Anwendung? Was braucht sie für numerische Daten? Verwenden Sie diese Grenze anstelle von Python's ziemlich nicht existierenden Integer-Grenze.

4voto

Wender Punkte 935

Ich verlasse mich stark auf solche Befehle.

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

Max int zurückgegeben: 9223372036854775807

Weitere Referenzen für 'sys' finden Sie unter

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

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X