Fachkonzept - Bedingungen
Datentyp Wahrheitswerte
Wahrheitswerte spielen bei der Auswertung von Bedingungen eine zentrale Rolle. Eine Bedingung ist dabei wahr oder falsch (oder nicht auswertbar, wenn Variablen noch keinen Wert haben).
Der Datentyp Wahrheitswerte beschreibt die Menge {wahr, falsch} der Wahrheitswerte zusammen mit den Operationen, die man mit Wahrheitswerten ausführen kann.
In Python wird der Datentyp Wahrheitswerte mit bool
bezeichnet.
Die Wahrheitswerte selbst werden mit True
und False
bezeichnet.
Wahrheitswerte kann man mit logischen Operatoren verknüpfen. Die folgende Tabelle zeigt, wie die drei logischen Grundoperatoren in Python bezeichnet werden. Das Verhalten der logischen Operatoren wird mit Wahrheitstafels festgelegt (siehe Fachkonzept - Logische Verknüpfungen).
Operator | Bedeutung | Beispiel | Wert |
---|---|---|---|
not | nicht | not True | False |
and | und | True and False | False |
or | oder | True or False | True |
Bedingungen
Bedingungen werden durch logische Terme (d.h. Terme vom Datentyp "Wahrheitswert") dargestellt.
Wie solche Terme aufgebaut sein können, soll im Folgenden anhand von Beispielen aufgezeigt werden. Die Beispiele sind dabei in der Programmiersprache Python dargestellt.
Häufig werden Bedingungen mit Vergleichsoperatoren gebildet. So sind
jahr % 400 == 0
bzw. jahr % 100 != 0
zwei Bedingungen, die
die Vergleichssoperatoren ==
(für "gleich") bzw. !=
(für "ungleich")
verwenden. Mehr über Vergleichsoperatoren und ihre Darstellung in Python findest du im Abschnitt
Exkurs - Zahlen in Python.
Bedingungen, die auf diese Weise mit Vergleichsoperatoren formuliert werden, sind elementare Bedingungen, da sie nicht weiter in Teilbedingungen zerlegt werden können.
Zusammengesetzte Bedingungen erhält man,
wenn man Bedingungen mit Hilfe von logischen Operatoren verknüpft.
Zur Verknüpfung stehen dabei u.a. die Operatoren and
(für ein logisches "und"),
or
(für ein logisches "oder") und not
(für ein logisches "nicht")
zur Verfügung.
Das folgende Programm enthält eine solche zusammengesetzte Bedingung. Mit diesem Programm kann man bestimmen, ob ein eingegebenen Jahr ein Schaltjahr ist.
# Eingabe
jahr = int(input('Jahr: '))
# Verarbeitung und Ausgabe
if jahr % 400 == 0 or (jahr % 4 == 0 and not jahr % 100 == 0):
print(jahr, 'ist ein Schaltjahr.')
else:
print(jahr, 'ist kein Schaltjahr.')
Beachte, dass in Python Vergleichsoperatoren stärker binden als logische Operatoren.
Logische Variablen
Logische Variablen sind Variablen, die ein Datenobjekt vom Typ bool
verwalten.
Das folgende Programm benutzt die logische Variable istSchaltjahr
, um zu erfassen, ob ein Schaltjahr
vorliegt.
# Eingabe
jahr = int(input('Jahr: '))
# Verarbeitung und Ausgabe
if jahr % 400 == 0 or (jahr % 4 == 0 and not jahr % 100 == 0):
istSchaltjahr = True
else:
istSchaltjahr = False
# Ausgabe
if istSchaltjahr == True:
print(jahr, 'ist ein Schaltjahr.')
else:
print(jahr, 'ist kein Schaltjahr.')
Zuweisungen an logische Variablen können - wie im folgenden Programm - auch mit logischen Termen gebildet werden.
# Eingabe
jahr = int(input('Jahr: '))
# Verarbeitung und Ausgabe
istSchaltjahr = jahr % 400 == 0 or (jahr % 4 == 0 and not jahr % 100 == 0)
# Ausgabe
if istSchaltjahr == True:
print(jahr, 'ist ein Schaltjahr.')
else:
print(jahr, 'ist kein Schaltjahr.')
Das Zusammenspiel von logischen Variablen und logischen Operatoren liefert oft kurze und verständliche Programme.
Logische Funktionen
Bedingungen können auch Funktionsaufrufe enthalten, wenn diese Funktionen
Rückgaben vom Datentyp bool
erzeugen.