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