bool()
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.
Inhaltsverzeichnis
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
class bool(object=False, /)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.
print(isinstance(True, int)) # True
print(isinstance(False, int)) # True
print(True + False) # 1
print(True * 5) # 5An 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.
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)) # 10658656Wahrheitswerte
Python hat klare Regeln, welche Werte als True oder False betrachtet werden.
FALSCH
NoneFalse0,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
# Direkte Boolean-Literale
result_one = True
result_two = False
# Bool-Konstruktor ohne Argument
empty_bool = bool()
print(empty_bool)FalseHier sehen wir die einfachste Verwendung. bool() ohne Argument gibt immer False zurück, was dem Standardwert entspricht.
Konvertierung verschiedener Datentypen
Numerische Werte
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)) # TrueFalse
True
True
Trueprint(bool(0.0)) # False - Null-Gleitkommazahl
print(bool(0.1)) # True
print(bool(-3.14)) # TrueFalse
True
Trueprint(bool(0j)) # False
print(bool(1+2j))# TrueFalse
True
True
TrueFür numerische Typen gilt die einfache Regel: Nur der Null (in jeder Darstellung) ist False, alle anderen numerischen Werte sind True.
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")) # TrueFalse
False
True
True
True
TrueBei 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
print(bool([])) # False
print(bool([0])) # True
print(bool[False]) # TrueFalse
True
Trueprint(bool(())) # False
print(bool(1, 2)) # TrueFalse
Trueprint(bool(set())) # False
print(bool({1, 2})) # TrueFalse
Trueprint(bool({})) # False
print(bool({"key": "value"})) # TrueFalse
TrueFü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
print(bool(None))FalseNone ist immer False.
der my_func():
pass
class MyClass:
pass
print(bool(my_func)) # True
print(bool(MyClass)) # True
print(bool(MyClass())) # TrueTrue
True
TrueVerwendung in Kontrollstrukturen
if-Statements
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])'' ist False
Hello ist True
0 ist False
[] ist False
[1, 2] ist TrueIn if-Statements wird automatisch bool() auf den Wert angewendet. Man muss nicht explizit if bool(value) schreiben.
while Schleifen
items = [1, 2, 3, 4, 5]
while items:
item = items.pop()
print(f"Verarbeite: {item}")
print("Liste leer")Verarbeite: 5
Verarbeite: 4
Verarbeite: 3
Verarbeite: 2
Verarbeite: 1
Liste leer