Teilen wir eine ganze Zahl ganzzahlig durch eine andere ganze Zahl, so erhalten wir meist einen Rest:
Z.B. bleibt bei der Division von 16 durch 6 der Rest 4, wir können also schreiben 16 = 2*6 + 4.
Bei Division von 9 durch 2 erhalten wir 4 und den Rest 1, da 9 = 4*2 + 1.
In Python liefert // das Resultat der Ganzzahldivision und % den entsprechenden Rest:
# Ganzzahldivision mit Rest
print( 9 // 2 ) # liefert den Wert 4
print( 9 % 2 ) # liefert den Wert 1
Die folgende Tabelle zeigt das Resultat einer Ganzzahldivision durch 2 sowie die entsprechenden Reste. Vergleiche die letzte Zeile der Tabelle mit dem obigen Beispiel.
| Dividend | Quotient | Rest |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 1 |
| 4 | 2 | 0 |
| 5 | 2 | 1 |
| 6 | 3 | 0 |
| 7 | 3 | 1 |
| 8 | 4 | 0 |
| 9 | 4 | 1 |
Und hier das Resultat einer Ganzzahldivision durch 3 sowie die entsprechenden Reste:
| Dividend | Quotient | Rest |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 2 | 0 | 2 |
| 3 | 1 | 0 |
| 4 | 1 | 1 |
| 5 | 1 | 2 |
| 6 | 2 | 0 |
| 7 | 2 | 1 |
| 8 | 2 | 2 |
| 9 | 3 | 0 |
Was auch auffällt: Der Rest startet bei 0, wächst in Einerschritten bis zu Divisor-1 und springt dann wieder zur 0.
Bei Division durch 4 erhalten wir also 4 unterschiedliche Reste, 0, 1, 2, 3, 0, 1, 2, 3, 0, ..., die wir z.B. in einer Verzweigung nutzen können.
# Abwechselnd "Nord", "Ost", "Süd", "West" ausgeben, insgesamt 100x
for i in range(100):
if ( i%4 == 0 ):
print("Nord")
elif ( i%4 == 1 ):
print("Ost")
elif ( i%4 == 2 ):
print("Süd")
else:
print("West")
# Dasselbe mit Hilfe einer Liste
richtungen = ["Nord", "Ost", "Süd", "West"]
for i in range(100):
print(richtungen[i % 4])