Du liest:
Python Boolean: Boolesche Werte in Python

Python Boolean: Boolesche Werte in Python

von Patrick
17.04.2020
Jetzt Python programmieren lernen

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.

1. 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

2. Python Boolean Verkettung mit and, or und not

2.1 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')
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')
else:
    print('Es konnten nicht beide Buchstaben in CodeCitrus gefunden werden')
# Beides in CodeCitrus

2.2 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

2.3 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

3. 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

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

5. 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!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren