veröffentlicht am: 17.04.2020 zuletzt aktualisiert am: 02.02.2023
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.
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
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
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
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
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
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
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.
"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
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig