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?Python 3
In Python 3 stellt sich diese Frage nicht. Die einfache int
Typ ist ungebunden.
Vielleicht suchen Sie aber auch nach Informationen über den aktuellen Interpreter [Wortgröße](http://en.wikipedia.org/wiki/Word(computer_architecture)#Table_of_wordsizes) , was in den meisten Fällen der Wortgröße des Rechners entspricht. Diese Information ist in Python 3 immer noch verfügbar als sys.maxsize
was dem maximalen Wert entspricht, der durch ein Wort mit Vorzeichen dargestellt werden kann. Gleichbedeutend ist es die Größe der größtmöglichen Liste oder speicherinternen Reihenfolge .
Im Allgemeinen beträgt der maximale Wert, der durch ein Wort ohne Vorzeichen dargestellt werden kann sys.maxsize * 2 + 1
und die Anzahl der Bits in einem Wort ist math.log2(sys.maxsize * 2 + 2)
. Siehe 本答 をご覧ください。
Python 2
In Python 2 ist der Höchstwert für einfache int
Werte ist verfügbar als sys.maxint
:
>>> sys.maxint
9223372036854775807
Sie können den Minimalwert berechnen mit -sys.maxint - 1
wie gezeigt aquí .
Python schaltet nahtlos von einfachen zu langen Ganzzahlen um, sobald Sie diesen Wert überschreiten. S
El sys.maxint
Konstante wurde ab Python 3.0 entfernt, verwenden Sie stattdessen sys.maxsize
.
Ganze Zahlen
- PEP 237: Im Wesentlichen wurde long in int umbenannt. Das heißt, es gibt nur noch einen eingebauten Integraltyp namens int, der sich aber weitgehend wie der alten long-Typ.
- PEP 238: Ein Ausdruck wie 1/2 gibt eine Fließkommazahl zurück. Verwenden Sie 1//2, um das Trunkierungsverhalten zu erhalten. (Die letztere Syntax existiert schon seit Jahren, zumindest mindestens seit Python 2.2.)
- Die Konstante sys.maxint wurde entfernt, da es keine Grenze für den Wert von Ganzzahlen mehr gibt. Allerdings kann sys.maxsize als eine ganze Zahl verwendet werden Ganzzahl verwendet werden, die größer als jeder praktische Listen- oder String-Index ist. Sie stimmt überein mit der "natürlichen" Integer-Größe der Implementierung und ist typischerweise die gleiche wie sys.maxint in früheren Versionen auf der gleichen Plattform (unter der Annahme, dass die gleichen Build-Optionen).
- Die Funktion repr() einer langen Ganzzahl enthält das nachgestellte L nicht mehr, so dass Code, der dieses Zeichen bedingungslos entfernt, stattdessen die letzte Ziffer abschneidet. stattdessen die letzte Ziffer ab. (Verwenden Sie stattdessen str().)
- Oktal-Literale haben nicht mehr die Form 0720; verwenden Sie stattdessen 0o720.
In Python wechseln Ganzzahlen automatisch von einer festen Größe int
Darstellung in eine variable Breite long
Darstellung, sobald Sie den Wert übergeben sys.maxint
die entweder 2 31 - 1 oder 2 63 - 1 je nach Plattform. Beachten Sie die L
die hier angehängt wird:
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
De la Python-Handbuch :
Zahlen werden durch numerische Literale oder als Ergebnis von eingebauten Funktionen und Operatoren erzeugt. Ungeschmückte Ganzzahl-Literale (einschließlich Binär-, Hex- und Oktalzahlen) ergeben einfache Ganzzahlen, es sei denn, der Wert, den sie bezeichnen, ist zu groß, um als einfache Ganzzahl dargestellt zu werden; in diesem Fall ergeben sie eine lange Ganzzahl. Ganzzahlige Literale mit einem
'L'
o'l'
Suffix ergeben lange Ganzzahlen ('L'
bevorzugt wird, weil1l
sieht zu sehr nach elf aus!).
Python gibt sich große Mühe, so zu tun, als ob seine ganzen Zahlen mathematische ganze Zahlen und unbegrenzt wären. Es kann zum Beispiel eine googol mit Leichtigkeit:
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
- See previous answers
- Weitere Antworten anzeigen