W3docs

Zahlen in Python verstehen

Lerne Pythons drei numerische Typen — int, float und complex — mit Arithmetik-Beispielen, Typkonvertierung, Präzisionsfallen und nützlichen Mathematikfunktionen.

Python verfügt über drei eingebaute numerische Typen: ganze Zahlen (int), Gleitkommazahlen (float) und komplexe Zahlen (complex). Diese Seite erklärt, wie jeder Typ funktioniert, wie man mit ihnen rechnet, häufige Stolperstellen, Typkonvertierung und welche Mathematikfunktionen die Standardbibliothek bereitstellt.

Ganze Zahlen (Integer)

Ein Integer ist eine ganze Zahl — positiv, negativ oder null — ohne Dezimalpunkt. In Python haben Integer unbegrenzte Präzision: Es gibt keine feste maximale Größe, wie es sie in C oder Java gibt. Python arbeitet problemlos mit Zahlen, die Hunderte von Stellen haben.

x = 10
y = -5
z = 0

# Python integers have no fixed size limit
big = 2 ** 100
print(big)  # 1267650600228229401496703205376

Integer-Arithmetik

python— editable, runs on the server

Beachte, dass / immer einen float zurückgibt, auch wenn das Ergebnis eine ganze Zahl ist (6 / 2 ergibt 3.0). Verwende //, wenn du ein ganzzahliges Ergebnis benötigst.

Integer-Literale: Binär, Oktal und Hexadezimal

Python akzeptiert Integer-Literale in vier Zahlensystemen. Alle vier erzeugen dasselbe int-Objekt — das Präfix gibt Python lediglich an, wie die Ziffern zu interpretieren sind.

decimal     = 255        # base 10 — no prefix
binary      = 0b11111111 # base 2  — prefix 0b
octal       = 0o377      # base 8  — prefix 0o
hexadecimal = 0xFF       # base 16 — prefix 0x

print(decimal, binary, octal, hexadecimal)
# 255 255 255 255

# Convert an int back to a string in a given base
print(hex(255))   # '0xff'
print(bin(255))   # '0b11111111'
print(oct(255))   # '0o377'

Den Typ prüfen

Verwende type(), um den Typ eines Wertes zu bestätigen, oder isinstance(), um die Zugehörigkeit zu prüfen:

print(type(42))            # <class 'int'>
print(isinstance(42, int)) # True

Gleitkommazahlen (Float)

Ein float ist eine Zahl mit Dezimalpunkt (oder Exponent). Python-Floats sind 64-Bit-IEEE-754-Werte mit doppelter Genauigkeit, was etwa 15–17 signifikante Dezimalstellen ermöglicht.

x = 10.5
y = -5.2
z = 0.0
e = 1.5e3   # scientific notation — same as 1500.0

Float-Arithmetik

python— editable, runs on the server

Gleitkomma-Präzision

Da Floats binär gespeichert werden, können manche Dezimalbrüche nicht exakt dargestellt werden. Dies ist eine Eigenschaft der IEEE-754-Arithmetik, kein Python-Fehler:

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False

Wenn exakte Dezimalarithmetik wichtig ist (zum Beispiel bei Finanzberechnungen), verwende statt float das Modul decimal aus der Standardbibliothek.

Runden und nützliche Float-Operationen

import math

print(round(3.14159, 2))  # 3.14  — round to 2 decimal places
print(math.floor(3.7))    # 3     — largest integer <= value
print(math.ceil(3.2))     # 4     — smallest integer >= value
print(math.sqrt(16))      # 4.0   — square root
print(abs(-7.5))          # 7.5   — absolute value

Komplexe Zahlen

Eine komplexe Zahl hat einen Realteil und einen Imaginärteil. In Python (nach technischer Konvention) wird die imaginäre Einheit mit j oder J geschrieben, nicht mit i.

x = 10 + 5j
y = -5 + 3j
z = 0 + 0j        # equivalent to complex(0, 0)
w = complex(2, -3) # constructor: real=2, imag=-3

Zugriff auf Real- und Imaginärteil

z = 3 + 4j
print(z.real)   # 3.0
print(z.imag)   # 4.0
print(abs(z))   # 5.0  — magnitude: sqrt(3^2 + 4^2)

Arithmetik mit komplexen Zahlen

python— editable, runs on the server

Komplexe Zahlen können nicht mit < oder > verglichen werden, da es keine natürliche Ordnung in der komplexen Ebene gibt. Nur == und != werden unterstützt.

Typkonvertierung

Python fördert Typen bei Zuweisungen nicht stillschweigend, aber Arithmetik zwischen verschiedenen numerischen Typen folgt klar definierten Regeln:

AusdruckErgebnistyp
int + intint
int + floatfloat
float + complexcomplex
int + complexcomplex

Du kannst Typen explizit mit den eingebauten Konstruktoren konvertieren:

# int → float
print(float(42))       # 42.0

# float → int (truncates toward zero, no rounding)
print(int(3.9))        # 3
print(int(-3.9))       # -3

# str → int or float
print(int("100"))      # 100
print(float("3.14"))   # 3.14

# int → complex
print(complex(5))      # (5+0j)

Beachte, dass die Konvertierung von float zu int abschneidet — es wird nicht gerundet. Verwende zuerst round(), wenn du ein gerundetes Ergebnis benötigst.

Das math-Modul

Das math-Modul bietet zusätzliche mathematische Funktionen für reelle Zahlen.

import math

print(math.pi)          # 3.141592653589793
print(math.e)           # 2.718281828459045

print(math.log(math.e)) # 1.0   — natural log
print(math.log10(1000)) # 3.0
print(math.pow(2, 10))  # 1024.0 — float result (use ** for int result)
print(math.factorial(5)) # 120
print(math.gcd(12, 8))  # 4

Für Operationen mit komplexen Zahlen verwende cmath statt math:

import cmath

z = 1 + 1j
print(cmath.phase(z))   # 0.7853981633974483  — angle in radians (π/4)
print(cmath.polar(z))   # (1.4142135623730951, 0.7853981633974483) — (r, θ)

Wann welchen Typ verwenden

AnwendungsfallEmpfohlener Typ
Zählen, Indizieren, Bitoperationenint
Messungen, wissenschaftliches Rechnenfloat
Signalverarbeitung, Elektrotechnikcomplex
Finanzberechnungen mit exakter Genauigkeitdecimal.Decimal

Für verwandte Themen siehe das Kapitel Python-Variablen für die Speicherung von Zahlen in Variablen, das Kapitel Python-Operatoren für den vollständigen Satz numerischer Operatoren und Python Casting für Details zur Typkonvertierung.

Übungen

Übung
Welche der folgenden Zahlentypen werden in Python unterstützt?
Welche der folgenden Zahlentypen werden in Python unterstützt?
Was this page helpful?