Modulo

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])