Ganzzahlig teilen und Rest berechnen
Warum brauchen wir das?
Manchmal willst du keine Kommazahl – sondern eine klare Antwort in ganzen Stücken:
- 20 Sticker auf 6 Kinder: Wie viele ganze Sticker pro Kind? Was bleibt übrig?
- 130 Minuten: Wie viele volle Stunden und wie viele Restminuten?
- Ist eine Zahl gerade oder ungerade? (
% 2) - Eier in 6er-Packungen: volle Packungen + einzelne Eier
/ liefert oft 3.333... – nützlich für Durchschnitte, unpraktisch für
„ganze Packungen“. Dafür gibt es zwei Spezial-Operatoren: // und %.
Definition: // und %
Definition – ganzzahlige Division (
//):
a // bfragt: Wie oft passtbganz ina?
Bei positiven Zahlen entspricht das dem Abrunden nach unten (floor).
Definition – Modulo / Rest (
%):
a % bfragt: Was bleibt übrig, wenn manbso oft wie möglich ganz vonaabzieht?
print(17 // 5) # 3
print(17 % 5) # 2
Denn: 5 × 3 = 15, und 17 − 15 = 2.
Probe: 15 + 2 = 17. Passt.
Merksatz und Probe
Dividend = Divisor × (Ergebnis von
//) + (Ergebnis von%)
print(5 * (17 // 5) + (17 % 5)) # 17
Wenn diese Probe nicht den Ausgangswert ergibt, hast du Operanden oder Operatoren vertauscht – Buggys Lieblingssport.
| Wort | Bedeutung | Beispiel bei 17 // 5 |
|---|---|---|
| Dividend | Zahl, die geteilt wird | 17 |
| Divisor | Teiler | 5 |
| Quotient (ganz) | //-Ergebnis | 3 |
| Rest | %-Ergebnis | 2 |
Luna verteilt Club-Sticker
Luna hat 23 Sticker, 4 Kinder im Team.
sticker = 23
kinder = 4
pro_kind = sticker // kinder
rest = sticker % kinder
print("Pro Kind:", pro_kind)
print("Uebrig:", rest)
Ausgabe:
Pro Kind: 5
Uebrig: 3
Py: „Jeder bekommt 5, drei bleiben in der Box – fair und ehrlich.“
Buggy schlägt vor: „Nimm einfach /, dann bekommt jeder 5.75 Sticker!“
Lily: „Sticker zerschneiden wir nicht. Deshalb // und %.“
Neue Wörter
Teilen ohne Nachkommastellen: Operator //.
Der Rest bei der Division: Operator %.
Die Zahl, die geteilt wird (links vom Operator).
Der Teiler (rechts vom Operator).
Vergleich der drei Divisions-Operatoren
print(10 // 3) # 3
print(10 % 3) # 1
print(10 / 3) # 3.333...
| Operator | Frage an Python | Beispiel 10 ? 3 |
|---|---|---|
/ | genaue Division | 3.333... |
// | ganze Anteile | 3 |
% | was bleibt übrig? | 1 |
Alltagsbeispiel: Minuten in Stunden
minuten = 130
stunden = minuten // 60
rest = minuten % 60
print(stunden, "h", rest, "min")
Ausgabe:
2 h 10 min
Denn 2 × 60 = 120, Rest 10. Perfekt für Timer, Spieldauer oder Hausaufgabenzeit.
Gerade oder ungerade? (Vorgeschmack)
print(8 % 2) # 0 → gerade
print(9 % 2) # 1 → ungerade
Wenn der Rest bei Teilung durch 2 0 ist, ist die Zahl gerade.
Sonst ungerade. Später baust du daraus echte if-Entscheidungen.
Was passiert im Computer?
Stell dir vor, Python legt den Divisor so oft wie möglich in den Dividend:
//zählt die vollen Passungen.%misst, was nicht mehr eine volle Passung ergibt./rechnet mit Bruchteil weiter – kein Abschneiden.
Bei positiven Zahlen ist das intuitiv. (Bei negativen Zahlen wird // etwas
kniffliger – das brauchst du jetzt noch nicht.)
Auch hier gilt: Teiler 0 ist verboten – für /, // und %.
Häufige Irrtümer
| Irrtum | Richtig |
|---|---|
% bedeutet „Prozent“ | In Python: Rest der Division |
// ist dasselbe wie / | Nein – // ganzzahlig, / float |
17 // 5 ergibt 3.4 | Ergibt 3 |
| Rest kann größer als Divisor sein | Nein – Rest ist immer kleiner als Divisor (bei positiven Zahlen) |
print(14 / 5) zeigt den Rest | Nein – Rest ist 14 % 5 → 4 |
Probiere es selbst
Experiment 1 – Grundrechnung
print(23 // 4)
print(23 % 4)
print(4 * (23 // 4) + (23 % 4)) # muss 23 sein
Experiment 2 – Stifte verteilen
stifte = 30
personen = 7
print("Pro Person:", stifte // personen)
print("Rest:", stifte % personen)
Experiment 3 – Minuten
minuten = 95
print(minuten // 60, "Stunden")
print(minuten % 60, "Minuten")
Experiment 4 – Gerade?
zahl = int(input("Zahl: "))
print("Rest bei Teilung durch 2:", zahl % 2)
Ist der Rest 0, ist die Zahl gerade.
Fehlerdetektiv
print(14 / 5)
Lösung anzeigen
/ liefert die genaue Division (2.8), nicht den Rest.
Rest:
print(14 % 5) # 4
Ganze Anteile:
print(14 // 5) # 2
Übungen
Level 1 – Entdecken
Berechne 19 // 6 und 19 % 6. Schreibe die Probe auf Papier:
6 × ? + ? = 19.
Lösung
print(19 // 6) # 3
print(19 % 6) # 1
# Probe: 6 * 3 + 1 = 19
Level 2 – Anwenden
Lies Anzahl Süßigkeiten und Kinder ein. Gib aus: pro Kind und Rest.
Lösung
suess = int(input("Suessigkeiten: "))
kinder = int(input("Kinder: "))
print("Pro Kind:", suess // kinder)
print("Rest:", suess % kinder)
Level 3 – Erweitern
Lies Sekunden ein. Rechne in Minuten und Restsekunden um.
Lösung
sekunden = int(input("Sekunden: "))
minuten = sekunden // 60
rest = sekunden % 60
print(minuten, "min", rest, "s")
Mini-Challenge
50 Eier, Packung zu 6: Wie viele volle Packungen? Wie viele einzelne Eier? Erkläre in einem Satz: Was ist der Rest?
Lösungsidee
eier = 50
packung = 6
print("Volle Packungen:", eier // packung) # 8
print("Einzelne:", eier % packung) # 2
Zusammenfassung
//liefert ganze Anteile,%den Rest./liefert die genaue Division (float).- Probe:
divisor * (a // b) + (a % b)ergibt wiedera. - Nützlich für Verteilen, Zeitumrechnung, Packungen.
% 2bereitet gerade/ungerade vor.%heißt nicht Prozent.
Mini-Quiz
- Was macht
//? - Was bleibt bei
20 % 6? - Wann ist
%im Alltag nützlich?
Lösungen
- Ganzzahlige Division (volle Anteile).
2.- Verteilen, Zeit umrechnen, Reste, gerade/ungerade.
Rest verstanden! Als Nächstes: Reihenfolge der Operationen – Punkt vor Strich.