W3docs

Python Booleans verstehen

Python Booleans: True/False-Werte, Truthy- und Falsy-Regeln, bool()-Konvertierung, logische Operatoren und häufige Fallstricke mit klaren Beispielen.

Ein boolean ist ein Datentyp mit genau zwei möglichen Werten: True oder False. Python-Booleans steuern jede Entscheidung, die Ihr Code trifft — von if-Anweisungen über while-Schleifen bis hin zu List Comprehensions. Dieses Kapitel erklärt, wie Booleans funktionieren, wie Python jeden Wert als truthy oder falsy auswertet und welche praktischen Muster Sie täglich verwenden werden.

Was sind Python Booleans?

In Python sind True und False Schlüsselwörter (großgeschrieben). Sie gehören zum eingebauten Typ bool, der eine Unterklasse von int ist. Das bedeutet, dass True sich wie 1 und False sich wie 0 in arithmetischen Kontexten verhält.

print(type(True))   # <class 'bool'>
print(type(False))  # <class 'bool'>

print(True == 1)    # True
print(False == 0)   # True
print(True + True)  # 2  (bool is a subclass of int)

Die letzte Zeile — True + True ergibt 2 — überrascht viele Anfänger. Es ist gültiges Python und gelegentlich nützlich (zum Beispiel um zu zählen, wie viele Bedingungen in einer Liste wahr sind), aber das Verwenden von Booleans in der Arithmetik sollte bewusst und klar kommentiert sein.

Boolean-Variablen erstellen

Sie können True oder False direkt einer Variablen zuweisen:

Python define boolean variable

python— editable, runs on the server

Üblicherweise beginnen Namen von boolean-Variablen mit is_, has_, can_ oder should_, um ihren Zweck auf einen Blick erkennbar zu machen.

Booleans aus Vergleichsoperatoren

Jeder Vergleichsoperator liefert ein boolean-Ergebnis:

OperatorBedeutungBeispielErgebnis
==gleich5 == 5True
!=ungleich5 != 3True
<kleiner als3 < 5True
>größer als5 > 3True
<=kleiner oder gleich5 <= 5True
>=größer oder gleich4 >= 5False

Python compare two integers

python— editable, runs on the server

Sie können Vergleichsergebnisse in einer Variablen speichern und wiederverwenden, was komplexe if-Bedingungen lesbarer macht.

Booleans in bedingten Anweisungen verwenden

Booleans sind das Herzstück von if/else-Entscheidungen. Python wertet den Ausdruck nach if aus und führt den eingerückten Block nur dann aus, wenn das Ergebnis True ist:

Python compare two integers and print the result

python— editable, runs on the server

Sie können auch eine boolean-Variable direkt ohne jeden Vergleichsoperator verwenden:

is_raining = True
if is_raining:
    print("Bring an umbrella")
else:
    print("Enjoy the sunshine")

if is_raining: zu verwenden ist pythonischer als if is_raining == True:. Letzteres fügt keine Information hinzu und gilt als Code-Smell.

Truthy- und Falsy-Werte

Python erfordert in einem boolean-Kontext keinen tatsächlichen True- oder False-Wert. Jedes Objekt ist entweder truthy (wird als True behandelt) oder falsy (wird als False behandelt). Das ermöglicht kompakte Bedingungen ohne explizite Vergleiche.

Falsy-Werte

Die folgenden Werte sind in Python immer falsy:

WertTyp
Falsebool
0int
0.0float
"" oder ''str (leerer string)
[]list (leere list)
{}dict (leeres dict)
()tuple (leeres tuple)
set()set (leeres set)
NoneNoneType

Alles andere ist truthy — einschließlich Zahlen ungleich null, nicht leere Strings und nicht leere Collections.

# All of these print "empty" because the values are falsy
for value in [0, 0.0, "", [], {}, (), None]:
    if not value:
        print(f"{repr(value)} is falsy")

Truthy-Werte in der Praxis

name = input("Enter your name: ")
if name:                   # truthy if name is not an empty string
    print(f"Hello, {name}!")
else:
    print("No name provided.")

items = [1, 2, 3]
if items:                  # truthy if list is not empty
    print(f"Processing {len(items)} items")

Dieses Muster — eine Collection direkt zu prüfen anstatt len(items) > 0 — ist idiomatisches Python.

Werte mit bool() in boolean umwandeln

Die eingebaute Funktion bool() wandelt jeden Wert in sein boolean-Äquivalent um, was nützlich ist, wenn Sie prüfen möchten, ob etwas truthy oder falsy ist:

Python casting into boolean

python— editable, runs on the server

Weitere Beispiele:

print(bool(0))        # False
print(bool(0.0))      # False
print(bool(""))       # False
print(bool([]))       # False
print(bool(None))     # False

print(bool(1))        # True
print(bool(-1))       # True
print(bool("hello"))  # True
print(bool([0]))      # True  — list with one element is truthy

Beachten Sie, dass bool([0]) True ergibt, obwohl das einzige Element darin falsy ist. Python prüft, ob der Container leer ist, nicht die darin enthaltenen Werte.

Logische Operatoren mit Booleans

Python bietet drei logische Operatoren zum Verknüpfen von boolean-Ausdrücken. Unter Python Operators finden Sie die vollständige Operatorreferenz.

and

Gibt True zurück, nur wenn beide Operanden wahr sind:

print(True and True)   # True
print(True and False)  # False
print(False and True)  # False
print(False and False) # False

or

Gibt True zurück, wenn mindestens ein Operand wahr ist:

print(True or False)   # True
print(False or False)  # False
print(True or True)    # True

not

Kehrt den boolean-Wert um:

print(not True)   # False
print(not False)  # True
print(not 0)      # True  (0 is falsy, so not 0 is True)
print(not "hi")   # False ("hi" is truthy, so not "hi" is False)

Kurzschlussauswertung

Python wertet and und or verzögert aus — es hält an, sobald das Ergebnis feststeht. Das nennt sich Kurzschlussauswertung:

  • False and <anything> — Python wertet die rechte Seite nie aus, weil das Ergebnis bereits False ist.
  • True or <anything> — Python wertet die rechte Seite nie aus, weil das Ergebnis bereits True ist.

Das ist relevant, wenn die rechte Seite Seiteneffekte hat oder einen Fehler auslösen könnte:

items = []

# Safe: the second condition is only evaluated if items is truthy
if items and items[0] > 10:
    print("First item exceeds 10")

Ohne Kurzschlussauswertung würde items[0] bei einer leeren Liste einen IndexError auslösen. Da items falsy ist (leere Liste), überspringt Python die rechte Seite vollständig.

Der is-Operator im Vergleich zu == bei Booleans

== prüft, ob zwei Werte gleich sind. is prüft, ob zwei Namen auf dasselbe Objekt im Speicher verweisen.

print(1 == True)   # True  (equal in value)
print(1 is True)   # False (different objects)

Verwenden Sie immer == (oder verlassen Sie sich auf Truthiness), wenn Sie Werte vergleichen. Reservieren Sie is für Identitätsprüfungen — am häufigsten is None:

value = None
if value is None:
    print("No value provided")

== None funktioniert, aber is None ist die idiomatische und geringfügig schnellere Form.

Zählen mit Booleans

Da True == 1 und False == 0 gilt, können Sie sum() verwenden, um zu zählen, wie viele Elemente in einer Liste eine Bedingung erfüllen:

scores = [85, 42, 91, 67, 55, 78]
passed = sum(score >= 60 for score in scores)
print(f"{passed} out of {len(scores)} students passed")
# 4 out of 6 students passed

Das ist prägnanter als eine manuelle Zählerschleife und ein verbreitetes Python-Idiom.

Häufige Fallstricke

1. Expliziter Vergleich mit True/False

# Avoid
if is_valid == True:
    ...

# Prefer
if is_valid:
    ...

2. Verwechslung von = (Zuweisung) mit == (Gleichheit)

x = 5
if x = 5:   # SyntaxError — use == for comparison
    print("equal")

3. Annahme, dass eine leere Liste innerhalb einer Liste falsy ist

outer = [[]]       # a list containing one empty list
if outer:
    print("truthy")  # This prints! outer has one element.

Die äußere Liste enthält ein Element (die innere leere Liste), daher ist outer selbst truthy. Nur die innere Liste outer[0] ist falsy.

Zusammenfassung

  • Python-Booleans sind True und False — immer großgeschrieben.
  • Jeder Wert in Python ist entweder truthy oder falsy. Falsy-Werte umfassen 0, "", [], {}, () und None.
  • Verwenden Sie bool(), um einen Wert explizit in sein boolean-Äquivalent umzuwandeln.
  • Verknüpfen Sie Bedingungen mit and, or und not. Python wertet sie durch Kurzschlussregeln verzögert aus.
  • Verwenden Sie is None (nicht == None), wenn Sie auf None prüfen.
  • Da bool eine Unterklasse von int ist, ergibt True + True den Wert 2 — praktisch zum Zählen.

Als Nächstes lernen Sie mehr über Python Operators, um zu sehen, wie Vergleichs- und logische Operatoren die hier behandelten boolean-Werte erzeugen. Sie können auch erkunden, wie Booleans den Programmfluss in Python If...Else steuern.

Practice

Übung
Which of the following values are falsy in Python?
Which of the following values are falsy in Python?
Was this page helpful?