Python Boolean: Boolesche Werte in Python

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 17.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Der Python boolean Datentyp: Wahr oder Falsch?!

    Manchmal müssen wir wissen, ob eine Aussage (z.B. ob eine Zahl in einer Liste von Zahlen vorhanden ist), wahr oder falsch ist, wofür wir in Python sogenannte booleans, auch bool abgekürzt, benutzen können.

    Der Typ Boolean und boolesche Ausdrücke

    Boolesche Werte werden normalerweise mit True oder False, alternativ auch mit 1 oder 0, angegeben, jedoch können auch andere Werte in Python in Booleans mittels der Funktion bool umgewandelt werden.

    boolean = True
    print(type(boolean), boolean)
    # <class 'bool'> True
    
    boolean = bool(1)
    print(type(boolean), boolean)
    # <class 'bool'> True
    
    boolean = bool(0)
    print(type(boolean), boolean)
    # <class 'bool'> False

    Wir können auch Ausdrücke schreiben, die uns wie im nächsten Beispiel angeben, ob ein Buchstabe in einer Zeichenkette vorhanden ist, wobei der zurückgegebene Wert ebenfalls vom Typ bool ist.

    string = 'foobar'
    b = 'o' in string
    print(type(b), b)
    # <class 'bool'> True
    b = 'z' in string
    print(type(b), b)
    # <class 'bool'> False

    Dies funktioniert genauso für mathematische Operationen:

    b = 10 < 5
    print(type(b), b)
    # <class 'bool'> False

    Python Boolean Verkettung mit and, or und not

    and

    Mit dem Schlüsselwort and lässt sich überprüfen, ob zwei boolesche Ausdrücke zutreffen.

    if 'C' in 'CodeCitrus' and 'W' in 'CodeCitrus':
        print('Beides in CodeCitrus enthalten')
    else:
        print('Es konnten nicht beide Buchstaben in CodeCitrus gefunden werden')
    # Es konnten nicht beide Buchstaben in CodeCitrus gefunden werden

    Im vorigen Beispiel wurde das Ergebnis für else ausgegeben, da “W” nicht in “CodeCitrus” vorkommt, wenn wir jedoch statt “W” “s” angeben, erhalten wir ein anderes Ergebnis:

    if 'C' in 'CodeCitrus' and 's' in 'CodeCitrus':
        print('Beides in CodeCitrus enthalten')
    else:
        print('Es konnten nicht beide Buchstaben in CodeCitrus gefunden werden')
    # Beides in CodeCitrus enthalten

    or

    Mit or lässt sich im Gegensatz zu and nachprüfen, ob wenigstens einer der beiden Ausdrücke True ergibt.
    Wenn nur einer der beiden Ausdrücke zutrifft, ist das Ergebnis True.

    if 'z' in 'xyz' or 1 > 2:
        print(True)
    # True

    Wenn beide Ausdrücke zutreffen, ist das Ergebnis mit or ebenfalls True.

    if 'z' in 'xyz' or 1 < 2:
        print(True)
    # True

    Nur wenn keine der beiden Konditionen zutreffen, erhalten wir von or das Ergebnis False.

    if 'z' not in 'xyz' or 1 > 2:
        print(True)
    else:
        print(False)
    # False

    Zudem bietet or noch eine weitere, weniger bekannte Möglichkeit, einen Wert auszugeben: statt False kann auch ein anderer Wert zurückgegeben werden, wenn ein Ausdruck nicht zutrifft.

    boolean_expression = 'a' in 'xyz' or 'Ersatzwert'
    print(boolean_expression)
    # Ersatzwert

    not

    Mit not lässt sich das Gegenteil eines Ausdrucks ermitteln.

    boolean = not True
    print(boolean)
    # False

    So kannst du auch einfach fragen, ob ein Buchstabe in einer Zeichenkette ist oder nicht und entsprechend ein Ergebnis zurückgeben.

    def ueberpruefe_buchstabe(buchstabe):
        if buchstabe not in 'xyz':
            print('xyz')
        else:
            print('abc')
    ueberpruefe_buchstabe('z')
    # abc
    ueberpruefe_buchstabe('l')
    # xyz

    Schleifen mit booleschen Ausdrücken

    Wie oft eine Schleife ausgeführt wird, lässt sich ebenfalls mit booleschen Ausdrücken bestimmen.
    In Python wird hierfür meist while verwendet.
    Eine while-Schleife führt Anweisungen so oft aus, bis der ihr zu Beginn übergebene Ausdruck nicht mehr True ist.

    i = 1
    while i < 5:
        print(i)
        i += 1

    Hier erhalten wir als Ergebnis die Zahlen von 1 bis 4, da die Bedingung der Schleife ist, dass diese nur ausgeführt wird, solange “i” kleiner als 5 ist.

    1
    2
    3
    4

    In Python Boolean mit in in eigener Klasse

    Mit der magic method __contains__ kannst du eine Methode in deiner Klasse implementieren, die es dir ermöglicht mittels des Operators in einen booleschen Ausdruck, welcher True oder False liefert, einfach zu erstellen.
    Dies wird hier demonstriert mit einer Klasse, die eine Liste von Zahlen enthält, welche beim Aufruf von in darauf überprüft wird, ob ein bestimmtes Element in dieser Liste enthalten ist.

    class Beispiel(object):
        def __init__(self):
            self.zahlen = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
        def __contains__(self, zahl):
            return zahl in self.zahlen
        
    bsp = Beispiel()
    print(4 in bsp)
    # True
    print(13 in bsp)
    # False
    print(1 in bsp)
    # True

    Fazit – Python Boolean

    In Python mit Boolean arbeiten und boolesche Ausdrücke zu schreiben ist einfach, zudem kannst du mit der magic method __contains__ den Operator in für deine eigenen Klassen nutzbar machen, womit du dann wiederum boolesche Ausdrücke mit diesen selbst erstellen kannst.

    Hast du noch Anregungen, ist dir etwas unklar oder hat dir der Artikel gefallen? Schreib mir bitte einen Kommentar!

    😩 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