Wie stelle ich Minimal- und Maximalwerte für ganze Zahlen in Python dar? In Java haben wir Integer.MIN_VALUE
y Integer.MAX_VALUE
.
Antworten
Zu viele Anzeigen?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
.
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.
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
- See previous answers
- Weitere Antworten anzeigen