In Python3 hat keine Obergrenze.
Python2 hat zwei Integer-Typen, int und long, aber Python3 hat nur int. int in Python3 ist äquivalent zu long in Python2, und es gibt keine Obergrenze. Sie können also große Werte verarbeiten, wie Arbeitsspeicher verfügbar ist.
Dieser Artikel hat folgenden Inhalt.
- int und long in Python2
- int in Python3 hat keine Obergrenze
Im following Artikel FINDEN SIE sterben maximalen und minimalen Werte der Gleitkommazahl Float.
Beachten Sie, dass NumPy Datentypen mit einer festen Anzahl von Bits verwendet, z. B. int32 (32-Bit-Ganzzahl) und int64 (64-Bit-Ganzzahl).
int und long in Python2
Python2 hat zwei Integer-Typen, int und long.
Sie können den maximalen Wert von int mit sys.maxint abrufen. Der Mindestwert (der größte negative Wert) ist -sys.maxint-1.
sys.maxint ist mindestens 2**31-1 und in einer 64-Bit-Umgebung 2**63-1.
langer Hut keine Ober- und Untergrenze.
int in Python3 hat keine Obergrenze
int in Python3 entspricht long in Python2, und es gibt keine Ober- und Untergrenze.
Die Konstante sys.maxint wurde entfernt, da der Wert von Ganzzahlen nicht mehr begrenzt ist. sys.maxsize kann jedoch als Integer verwendet werden, der größer ist als jeder praktische Listen- oder Zeichenfolgenindex. Es entspricht der „natürlichen“ Integergröße der Implementierung und ist normalerweise dasselbe wie sys.maxint in verschiedenen Versionen auf derselben Plattform (unter der Annahme derselben Build-Optionen).
Was ist neu in Python 3.0 – Dokumentation zu Python 3.8.4
In Python3 wurde sys.maxint entfernt und sys.maxsize hinzugefügt.
sys.maxsize ist 2**31-1 in einer 32-Bit-Umgebung und 2**63-1 in einer 64-Bit-Umgebung, wie sys.maxint in Python2.
import sys
print(sys.maxsize)
# 9223372036854775807
print(type(sys.maxsize))
# <class 'int'>
print(sys.maxsize == 2**63 - 1)
# True
Konvertiert in Binär- und Hexadezimalzahlen mit bin() und hex() wird sys.maxsize wie folgt wiedergegeben.
print(bin(sys.maxsize))
# 0b111111111111111111111111111111111111111111111111111111111111111
print(hex(sys.maxsize))
# 0x7fffffffffffffff
sys.maxsize ist nicht der maximale Wert von int, und Sie können größere Werte verarbeiten, wenn Arbeitsspeicher verfügbar ist.
i = 10**100
print(i)
# 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
print(i > sys.maxsize)
# True
Bei der Gleitkommazahl float steht inf für unendlich. inf wird als größer als jeder Wert von int aufgestellt.
print(float('inf'))
# inf
print(i > float('inf'))
# False
Siehe den following Artikel über unendlich inf.