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).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereArithmetische Operatoren
| Op | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
+ | Addition | 2 + 3 | 5 |
- | Subtraktion | 5 - 2 | 3 |
* | Multiplikation | 4 * 3 | 12 |
/ | echte Division | 10 / 4 | 2.5 |
// | Ganzzahl-Division | 10 // 4 | 2 |
% | Modulo (Rest) | 10 % 3 | 1 |
** | Potenzierung | 2 ** 10 | 1024 |
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 //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Numerische Built-ins
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]) # 6Das math-Modul
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) # 6Die Float-Falle
Floats sind binäre Annäherungen: 0.1 + 0.2 ist nicht exakt gleich
0.3.
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
Gegeben sei `seconds = 3725`. Berechne `hours`, `minutes`, `remaining_seconds` unter Verwendung von // und %. Evaluiere das Tupel `(hours, minutes, remaining_seconds)`.
Hinweis anzeigen
// führt eine Ganzzahldivision aus, % liefert den Rest.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Gegeben sei `radius = 5`. Berechne die Kreisfläche in `area` unter Verwendung von math.pi. Evaluiere `area` gerundet auf 2 Dezimalstellen mit round.
Hinweis anzeigen
math.pi * radius ** 2
Lösung nach 3 Versuchen verfügbar
Zusätzliche Herausforderung
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.
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