Python Modulo: So rechnest du mit Rest in Python

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 10.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Python Modulo: Mit Rest rechnen!

    Der Python Modulo Operator gibt den Rest einer Division zurück.
    In Python wird dies mit dem % dargestellt, syntaktisch sieht das in etwa so aus:

    # Dividend % Divisor = Rest
    7 % 4 = 3

    Mit dem Python Modulo Operator Zahlen filtern

    Wenn du beispielsweise aus einer Reihe von Zahlen nur gerade Zahlen herausfiltern möchtest, dann ginge das so:

    for i in range(0, 12):
        # Überprüft, ob beim Teilen durch 2 kein Rest zurück bleibt, was bedeutet, dass i eine gerade Zahl ist
        if i % 2 == 0:
            print(i)

    Der Output dieser For-Schleife wäre dann folgender:

    0
    2
    4
    6
    8

    Mit dem Python Modulo Operator Listen filtern

    Wenn du aus einer Liste von Wörtern, sagen wir, nur jedes Dritte anzeigen wolltest, wäre dieser Code eine angemessene Strategie um das zu erreichen.
    Nehmen wir an wir haben folgenden Python Enum:

    lorem_ipsum = ['Lorem', 'ipsum', 'dolor', 'sit', 'amet,', 'consectetur', 'adipiscing', 'elit.', 'Nam', 'feugiat', 'tellus', 'et', 'leo', 'hendrerit', 'aliquet.', 'Duis', 'augue', 'nisl,', 'volutpat', 'volutpat', 'vehicula', 'eu,', 'suscipit', 'sit', 'amet', 'ex.', 'In', 'hac', 'habitasse', 'platea.']

    Dann können wir mit dieser For-Schleife das gewünschte Ergebnis erreichen:

    for i, wort in enumerate(lorem_ipsum):
        if i % 3 == 0:
            print(i, wort)

    Hier der Output zu dem Code:

    0 Lorem
    3 sit
    6 adipiscing
    9 feugiat
    12 leo
    15 Duis
    18 volutpat
    21 eu,
    24 amet
    27 hac

    Modulo mit Gleitkommazahlen

    Der Modulo Operator % kann genauso auf Gleitkommazahlen angewendet werden wie auf ganzzahlige Werte.
    In dem folgenden Beispiel erhalten wir 0.20000000000000018 als Rest.

    4.2 % 1
    # Output => 0.20000000000000018

    Anhand dieses Beispiels kannst du erkennen, dass nach dem erwarteten Ergebnis 0.2 noch einige Stellen kommen. Das ist bedingt durch die Implementierung von sogenannten Floats in Computersystemen.

    Wenn dich das genauer interessiert, kannst du gerne hier nachlesen (Quellen in Englisch):
    What Every Computer Scientist Should Know About Floating-Point Arithmetic
    Oder hier für eine kurze Zusammenfassung:
    Floating-point Accuracy problems

    Fazit

    Modulo ist vielleicht keiner der häufigsten Anwendungsfälle für die meisten Programmierer, jedoch recht einfach zu handhaben, wenn du es mal benötigst. 
    Wenn du weitere praxisnahe Beispiele oder Verbesserungsvorschläge hast, würde ich mich freuen, in den Kommentaren davon zu lesen.
    Auch einfach ein paar nette Worte sind gerne gesehen!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig