Direkt zum Hauptinhalt springen
eLearner.app
Modul 4 · Lektion 3 von 415/36 im Kurs~10 min
Lektionen des Moduls (3/4)

Zahlen und math-Modul

Python unterscheidet zwei grundlegende numerische Typen: int (Integer mit beliebiger Genauigkeit — kein Überlauf) und float (64-Bit-Gleitkommazahlen, doppelte Genauigkeit).

Python
type(42)       # <class 'int'>
type(3.14)     # <class 'float'>
type(10 ** 100)  # <class 'int'>   — interi grandi a piacere

Arithmetische Operatoren

OpBedeutungBeispielErgebnis
+Addition2 + 35
-Subtraktion5 - 23
*Multiplikation4 * 312
/echte Division10 / 42.5
//Ganzzahl-Division10 // 42
%Modulo (Rest)10 % 31
**Potenzierung2 ** 101024

Warnung: / gibt immer einen float zurück, selbst bei zwei Integern (10 / 2 gibt 5.0 zurück, nicht 5). Verwende für die Ganzzahldivision //.

Python
10 / 4    # 2.5
10 // 4   # 2
-7 // 2   # -4   (arrotonda verso il basso, non verso lo zero)

Numerische Built-ins

Python
abs(-5)               # 5
min(3, 1, 2)          # 1
max([3, 1, 2])        # 3   (su iterabile)
round(3.7)            # 4
round(3.14159, 2)     # 3.14
sum([1, 2, 3])        # 6

Das math-Modul

Python
import math
math.pi               # 3.141592653589793
math.sqrt(16)         # 4.0
math.floor(3.9)       # 3   (verso meno infinito)
math.ceil(3.1)        # 4   (verso più infinito)
math.log(math.e)      # 1.0
math.gcd(12, 18)      # 6

Die Float-Falle

Floats sind binäre Annäherungen: 0.1 + 0.2 ist nicht exakt gleich 0.3.

Python
0.1 + 0.2           # 0.30000000000000004
0.1 + 0.2 == 0.3    # False !

Verwende für sichere Vergleiche math.isclose(a, b) oder in Finanzkontexten das Modul decimal.

Float-Präzision und das Decimal-Modul

Floats in Python sind als Gleitkommazahlen mit doppelter Genauigkeit (IEEE 754-Standard) implementiert. Folglich ergeben Berechnungen wie 0.1 + 0.2 nicht exakt 0.3, sondern vielmehr 0.30000000000000004. Wenn du absolute mathematische Präzision benötigst (z.B. bei Finanzanwendungen), verwende das standardmäßige decimal-Modul.

Probiere es aus

Übung#python.m4.l3.e1
Versuche: 0Wird geladen…

Gegeben sei `seconds = 3725`. Berechne `hours`, `minutes`, `remaining_seconds` unter Verwendung von // und %. Evaluiere das Tupel `(hours, minutes, remaining_seconds)`.

Editor wird geladen…
Hinweis anzeigen

// führt eine Ganzzahldivision aus, % liefert den Rest.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m4.l3.e2
Versuche: 0Wird geladen…

Gegeben sei `radius = 5`. Berechne die Kreisfläche in `area` unter Verwendung von math.pi. Evaluiere `area` gerundet auf 2 Dezimalstellen mit round.

Editor wird geladen…
Hinweis anzeigen

math.pi * radius ** 2

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m4.l3.e3
Versuche: 0Wird geladen…

Importiere das `math`-Modul. Berechne die Quadratwurzel aus `16` mit `math.sqrt`, addiere das Ergebnis zum gerundeten Wert von `3.74` (unter Verwendung von `round()`) und speichere die Gesamtsumme in `total_val`. Evaluiere schließlich die Variable.

Editor wird geladen…
Hinweis anzeigen

math.sqrt(16) gibt 4.0 zurück. round(3.74) gibt 4 zurück. Addiere sie und weise das Ergebnis total_val zu.

Lösung nach 3 Versuchen verfügbar