Logische Ausdrücke#

Der Datentyp Boolean#

Nun geht es um logische Ausdrücke.

In Python gibt es den Datentyp Boolean. Dieser kann zwei Werte annehmen: Wahr und Falsch, auf Englisch True und False.

True und False sind in Python Keywords. Der Anfangsbuchstabe muss groß geschrieben sein und der Rest klein.

Korrekt:
x = True
y = False

Falsch:
x = true
y = false
x = TRUE
y = FALSE
x = tRuE
y = fAlSe

Benutzt man einen Editor mit Python Syntax Highlighting oder gar Autocompletion, wird man anhand der Hervorhebung wie beim Beispiel oben, erkennen, ob man es richtig geschrieben hat oder nicht.

Logische Ausdrücke#

Der Vergleichsoperator, welcher auf Gleichheit prüft, ist wie in fast allen Programmiersprachen auch ==. Auf Ungleichheit prüft der Operator !=.

x = 5
y = 5

print(x == y)
# True

print(x != y)
# False

Um zu prüfen, ob eine Variable einen Nullwert hat, kann man entweder die obigen Vergleichsoperatoren oder das Keyword is nutzen:

x = None

print(x == None)
# True

print(x != None)
# False

print(x is None)
# True

print(x is not None)
# False

# Alternativ:
print(not x is None)
# False

Vergleiche von konkreten Werten sind mit >,<,>=,<= ebenfalls möglich.

Um einen booleschen Ausdruck zu negieren, benutzt man in C ein Ausrufezeichen:

int x = 5;
int y = 5;

printf("%d", !(x == y));
// 0 bzw. False

In Python gibt es dafür das keyword not. Das oben geschriebene Beispiel in Python wäre also

x = 5
y = 5

print(not (x == y))
# False

Die gleiche Vorgehensweise gilt beim “logischen Und” und beim “logischen Oder”.

Die entsprechenden Keywords sind and und or.

int x = 1; // bzw. True
int y = 0; // bzw. False
int z = 1; // bzw. True

printf("%d", x && z);
// 1 bzw. True

printf("%d", x && y);
// 0 bzw. False

printf("%d", x || y);
// 1 bzw. True

Python:

x = True
y = False
z = True

print(x and z)
# True

print(x and y)
# False

print(x or y)
# True

Aufgabe#

Gegeben ist ein logischer Ausdruck. Übersetzen Sie diesen Ausdruck in Python-Code. Damit Sie den Code ausführen können und somit Syntaxfehler vom Interpreter erhalten, nutzen Sie dafür die konkreten Werte \(x=5\), \(y=5\), \(z=3\), \(t=True\) und \(f=False\). Durch eben diese konkreten Werte entstehen Tautologien. Es sollen keine Vereinfachungen durchgeführt werden.

\(ausdruck = \)

\((x=y \land ((x=z \lor \neg(y < z)) \lor\)

\(\neg((\neg t \lor f) \land (t \land \neg (x < z)))))\)

Wenn Sie alternativ nicht den obigen Ausdruck nutzen möchten, können Sie auch den unten stehenden C-Code in Python-Code übersetzen. Der C-Code unten und der Ausdruck oben sind äquivalent.

Ihre Antwort#

# Hier können Sie ihren Versuch schreiben...
# Ersetzen Sie hierfür die drei Punkte unten durch Ihren Code.
x = 5
y = 5
z = 3
t = True
f = False

print(
    ...
)
Ellipsis