14.2. Ganze Zahlen - int#

Der Datentyp, welcher ganze Zahlen repräsentiert int (engl. Integer) ist ein atomarer Datentyp und verhält sich so wie wir es erwarten.

Falls Sie jedoch bereits Programmierkenntnisse besitzen, so gibt es für Sie in Python eine Besonderheit:

Fehlender Überlauf

In Python gibt es keinen Überlauf für ganze Zahlen int.

Anders als Fließkommazahlen benötigen ganze Zahlen int in Python eine variable Anzahl an Bits. Anders ausgedrückt: Nicht jede Zahl benötigt die gleiche Anzahl an Bits im Speicher! Solange Ihr Speicher nicht komplett belegt ist, können Sie in Python somit mit sehr großen ganzen Zahlen rechnen.

large_number = 10**100 
print(type(large_number))
print(large_number)
<class 'int'>
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Da wir bei mathematischen Operationen wie +, -, *, /, // und ** ganze Zahlen int und Fließkommazahlen float vermischen können, müssen wir darauf achten welcher Datentyp am Ende herauskommt. Sobald eine Fließkommazahl ein Teil der Berechnung ist, ist das Ergebnis vom Typ float.

x = 3 * 1.0     # int * float -> float   
print(type(x))
print(x)
<class 'float'>
3.0
large_number = 10.0**100     # float ** int -> float  
print(type(large_number))
print(large_number)
<class 'float'>
1e+100

Auch für die ganzzahligen Division // erhalten wir als Datentyp eine Fließkommazahl sofern eine Fließkommazahl bei der Operation teilnimmt:

x = 3.0 // 2     # float // int -> float   
print(type(x))
print(x)
<class 'float'>
1.0
x = 3 // 2.0     # int // float -> float   
print(type(x))
print(x)
<class 'float'>
1.0
x = 3 // 2     # int // int -> int   
print(type(x))
print(x)
<class 'int'>
1