In Python können wir nicht nur arithmetische, sondern zum Beispiel auch logische Ausdrücke auswerten und solche, deren Wert eine Zeichenkette, also Text, ist.
Eine Zeichenkette (englisch: string) wird dazu in Anführungszeichen eingeschlossen. Mehrere Zeichenketten können mit dem
+
- Operator aneinandergehängt werden.
>>> 'Hallo'
'Hallo'
>>> 'Welt'
'Welt'
>>> 'Hallo' + 'Welt'
'HalloWelt'
>>> 'Hallo' + ' ' + 'Welt'
'Hallo Welt'
>>> 'Hallo' + ' ' + 'Welt' + '!'
'Hallo Welt!'
Zahlen können wir mit der Funktion str()
in Zeichenketten konvertieren. Auf diese Weise können wir Zeichenketten mit arithmetischen Ausdrücken kombinieren:
>>> str(42)
'42'
>>> str(17+4)
'21'
>>> str(17) + str(4)
'174'
>>> 'Die Antwort ist ' + str(2*(17+4))
=> 'Die Antwort ist 42'
Der Operator +
wird also sowohl zur Addition von Zahlen als
auch zur Konkatenation von Zeichenketten verwendet. Beim
Versuch, +
mit einer Zahl und einer Zeichenkette aufzurufen,
erhalten wir allerdings einen Fehler:
>>> '40' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> 40 + '2'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Die Fehlermeldungen deuten darauf hin, dass Zahlen und Zeichenketten nicht automatisch ineinander konvertiert werden, denn es ist unklar, ob als Ergebnis die Zahl 42
oder die Zeichenkette '402'
herauskommen soll. Diese Unklarheit müssen wir durch explizite Konvertierung (mittels str()
) aufklären. Wollen wir eine Zeichenkette, die eine Zahl enthält, in eine Zahl konvertieren, können wir int()
(für Ganzzahlen, englisch integer) oder float()
(für Dezimalbrüche bzw. Gleitkommazahlen, englisch floating point number) benutzen.
>>> int('40') + 2
42
>>> '40' + str(2)
'402'
>>> 40 + float('2')
42.0
Logische Ausdrücke beschreiben Wahrheitswerte. Sie sind aus den Konstanten True
und False
aufgebaut, wobei komplexere Ausdrücke durch Anwendung logischer Operationen gebildet werden können. Eine Konjunktion (logisches “und”) wird durch den Operator and
gebildet, eine Disjunktion (logisches “oder”) durch or
und eine Negation (logisches “nicht”) durch ein vorangestelltes not
. Hier sind einige Beispiele für logische Ausdrücke in der Python-Umgebung:
>>> True and False
False
>>> not False
True
>>> False or (True and not False)
True
Auch Vergleichsoperatoren haben logische Werte als Ergebnis. Zum Beispiel liefert der Ausdruck 3 < 4
das Ergebnis True
. Hier sind weitere Beispiele für logische Ausdrücke mit Vergleichsoperatoren:
>>> 4 < 3
False
>>> 5+2 >= 6
True
>>> 5+2 >= 6+3
False
>>> 5+2 >= 6+3 or 3 <= 10/2
True
>>> 5+2 >= 6+3 or 3 <= 10/5
False
>>> 5+2 == 3+4
True
>>> 5+2 != 3+4
False
Nicht verwechseln! Ein einfaches Gleichheitszeichen =
steht in Python für eine Wertzuweisung (z. B. x = 4
). Für den Vergleich, ob zwei Werte identisch sind, muss ein doppeltes Gleichheitszeichen ==
verwendet werden:
>>> x = 4 # Wertzuweisung
>>> x == 4 # Vergleichsoperation
True
>>> x == 2+2
True
>>> 3 == 4
False
>>> 3 = 4
File "<stdin>", line 1
3 = 4
^
SyntaxError: cannot assign to literal
Auf rechten Seiten einer Zuweisung können beliebig komplizierte Ausdrücke stehen, deren Werte nicht unbedingt Zahlen zu sein brauchen.
>>> antwort = 2*(17+4)
>>> antwort
42
>>> text = 'Die Antwort ist ' + str(antwort)
>>> text
'Die Antwort ist 42'
>>> antwort = text == 'Die Antwort ist 42'
>>> antwort
True
Hier wird der Variablen antwort
zunächst der Wert 42
zugewiesen und dieser dann zur Definition der Variablen text
verwendet. Schließlich wird der Wert der Variablen antwort
auf True
geändert, indem ihr das Ergebnis eines Vergleiches zugewiesen wird.