Die Python-Funktion bool() ist eine eingebaute Funktion, die Werte in den booleschen Typ (True oder False) umwandelt. Sie prüft den Wahrheitswert eines Objekts und gibt entsprechend True oder False zurück. Diese Funktion ist essenziell für die Steuerung von Programmabläufen, die Auswertung von Bedingungen und die Verarbeitung von logischen Ausdrücken. Mit ihrer klaren Syntax unterstützt bool() die effiziente Umsetzung von Kontrollstrukturen und die zuverlässige Überprüfung von Daten in Python.

Einführung

Die bool Klasse ist ein eingebauter Datentyp in Python und bildet die Grundlage für logische Operationen und Kontrollstrukturen. Diese Klasse repräsentiert boolesche Werte. Sie ist eine Subklasse der int Klasse und kann zwei mögliche Werte haben: True oder False.

Syntax

Python Syntax
class bool(object=False, /)
Parameter
object

(Optional) Beliebiges Python Objekt, das zu einem booleschen Wert konvertiert werden soll. Wenn kein Parameter angegeben ist, wird ein False zurückgegeben.

Verwendungsarten

Die bool Klasse kann auf verschiedene Weise verwendet werden.

  • Als Literal: True, False
  • Als Konstruktor: bool(object)
  • Als Typ-Konvertierung: Explizite Umwandlung von Objekten zu booleschen Werten.

Positionsargument (/)

Der Schrägstrich / in der Signatur bedeutet, dass alle Parameter vor diesem Symbol nur als Positionsargumente übergeben werden können, nicht als Schlüsselwort-Argumente.

Rückgabewert

Die bool() Funktion gibt immer einen der beiden booleschen Werte zurück.

  • True, wenn das übergebene Objekt als “wahr” betrachtet wird.
  • False, wenn das das übergebene Objekt als “falsch” betrachtet wird oder kein Argumente übergeben wurde.

Besonderheiten

Subklasse von int

Eine der wichtigsten Besonderheiten ist, dass bool eine Subklasse von int ist.

Python
print(isinstance(True, int))    # True
print(isinstance(False, int))   # True
print(True + False)             # 1
print(True * 5)                 # 5

An diesem Beispiel sieht man, dass True und False als Ganzzahlen behandelt werden können.

Singleton Verhalten

True und False sind Singleton-Objekte. Es existiert jeweils nur eine Instanz von True und False im gesamten Python-Interpreter. Alle Boolean-Operationen geben Referenzen auf diese beiden einzigen Objekte zurück.

Python
print(True is True)     # True
print(False is False)   # True
print(bool(1) is True)  # True
print(bool(0) is False) # True

a = True
b = True
c = True

print(id(a)) # 10658656
print(id(b)) # 10658656
print(id(c)) # 10658656

Wahrheitswerte

Python hat klare Regeln, welche Werte als True oder False betrachtet werden.

FALSCH

  • None
  • False
  • 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • ""
  • ()
  • []
  • {}
  • set()
  • range(0)

WAHR

Alle anderen Werte, die unter FALSCH nicht aufgelistet sind.

Anwendung und Beispiele

Grundlegende Verwendung

Python Beispiel
# Direkte Boolean-Literale
result_one = True
result_two = False

# Bool-Konstruktor ohne Argument
empty_bool = bool()
print(empty_bool)
Output
False

Hier sehen wir die einfachste Verwendung. bool() ohne Argument gibt immer False zurück, was dem Standardwert entspricht.

Konvertierung verschiedener Datentypen

Numerische Werte

Python Beispiel - Ganzzahlen
print(bool(0)) # False - Null ist False
print(bool(1)) # True - Jede Zahl ungleich Null ist True
print(bool(-1)) # True - auch negative Zahlen
print(bool(42)) # True
Output
False
True
True
True
Python Beispiel - Fließkommazahlen
print(bool(0.0)) # False - Null-Gleitkommazahl
print(bool(0.1)) # True
print(bool(-3.14)) # True
Output
False
True
True
Python Beispiel - Komplexe Zahlen
print(bool(0j)) # False 
print(bool(1+2j))# True
Output
False
True
True
True

Für numerische Typen gilt die einfache Regel: Nur der Null (in jeder Darstellung) ist False, alle anderen numerischen Werte sind True.

Strings

Python Beispiel - Strings
# Leerer String
print(bool("")) # False
print(bool('')) # False

# Nicht-leere Strings
print(bool("Hello")) # True
print(bool(" ")) # True
print(bool("0")) # True
print(bool("False")) # True
Output
False
False
True
True
True
True

Bei Strings ist nur der völlig leere String "" falsy. Selbst Strings, die “falsy” aussehen können (wie “0” oder “False”), sind True, weil sie nicht leer sind.

Listen, Tupel und andere Sequenzen

Python Beispiel - Listen
print(bool([])) # False
print(bool([0])) # True
print(bool[False]) # True
Output
False
True
True
Python Beispiel - Tupel
print(bool(())) # False
print(bool(1, 2)) # True
Output
False
True
Python Beispiel - Sets
print(bool(set())) # False
print(bool({1, 2})) # True
Output
False
True
Python Beispiel - Dictionaries
print(bool({})) # False
print(bool({"key": "value"})) # True
Output
False
True

Für alle Collection-Typen (Listen, Tupel, Sets, Dictionaries) gilt: Leere Collections sind False, nicht-leere Collections sind True. Der Inhalt spielt keine Rolle - eine Liste mit [False] ist trotzdem True.

None und spezielle Werte

Python Beispiel - None
print(bool(None))
Output
False

None ist immer False.

Python Beispiel - Funktionen und Klassen
der my_func():
    pass

class MyClass:
    pass

print(bool(my_func)) # True
print(bool(MyClass)) # True
print(bool(MyClass())) # True
Output
True
True
True

Verwendung in Kontrollstrukturen

if-Statements

Python Beispiel - if
def check_value(value):
    if value:
        print(f"{value} ist True")
    else:
        print(f"{value} ist False")

check_value("")
check_value("Hello")
check_value(0)
check_value([])
check_value([1, 2])
Output
'' ist False
Hello ist True
0 ist False
[] ist False
[1, 2] ist True

In if-Statements wird automatisch bool() auf den Wert angewendet. Man muss nicht explizit if bool(value) schreiben.

while Schleifen

Python Beispiel - while
items = [1, 2, 3, 4, 5]
while items:
    item = items.pop()
    print(f"Verarbeite: {item}")

print("Liste leer")
Output
Verarbeite: 5
Verarbeite: 4
Verarbeite: 3
Verarbeite: 2
Verarbeite: 1
Liste leer
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht