Operatoren
Mathematische Operatoren
print(1 + 2) | => 3 (Addition) |
print(4 - 3) | => 1 (Subtraktion) |
print(5 * 6) | => 30 (Multiplikation) |
print(7 / 8) | => 0.875 (Division) |
Soweit sollten die Ausgaben der Grundrechnungsarten nicht besonders verblüffen. Natürlich kann man nicht nur mit selbst eingegebenen Zahlen sondern auch mit den Werten von Variablen rechnen.
print(10 % 3) | => 1 (10 geteilt durch 3 ergibt 3 Rest 1) |
Das %
-Zeichen ist der Modulo-Operator. Dieser liefert den Rest der Division.
print(10 // 3) | => 3 (10 geteilt durch 3 ergibt 3 Rest 1) |
Die Ganzzahldivision arbeitet wie der Modulo-Operator nur wird hier das Ergebnis und nicht der Rest geliefert.
print(1 + 1 * 3) | => 4 (3 mal 1 ist 3 plus 1 ergibt 4) |
print((1 + 1) * 3) | => 6 (1 plus 1 ist 2 mal 3 ergibt 6) |
Auch in Python gilt Punkt- vor Strichrechnung. Wenn wir von dieser Regel abweichen müssen oder wollen, dann ist das mit einer entsprechenden Klammerung möglich. Die Berechnungen in der Klammer werden immer zuerst ausgeführt.
h = "Hallo"
w = "Welt"
print(h + " " + w) => Hallo Welt
Der +
Operator kommt auch im Verbindung mit Texten zum Einsatz. In diesem Fall werden Texte aneinandergereiht. Wir müssen uns unbedingt merken, dass Operatoren abhängig von den Datentypen anders arbeiten.
print(10 ** 3)=> 1000 (10 hoch 3 ist 1000)
Die Exponentiation multipliziert die erste Zahl mit sich selbst. Die Anzahl dieser Multiplikationen wird mit der zweiten Zahl festgelegt.
Bitweise Operatoren
a = 2
b = 6
print(a & b) | => 2 (Bitweise Und-Verknüpfung AND) |
print(a | b) | => 6 (Bitweise Oder-Verknüpfung OR) |
print(a ^ b) | => 4 (Bitweise Exklusiv-Oder-Verknüpfung XOR) |
Schauen wir uns einmal die Zahlen 2 und 6 binär an:
Die Binärzahl 0110 kann man als 0 mal 8 + 1 mal 4 + 1 mal 2 + 0 mal 1 lesen.
Die AND-Verknüpfung ist nur dann erfüllt wenn an beiden Stellen eine Eins steht. Daher ist das Ergebnis 0010
oder 2 in dezimaler Schreibweise.
Bei der OR-Verknüpfung entsteht im Ergebnis eine Eins wenn an einer oder beiden Stellen eine Eins steht. Derher ergibt sich wieder 6 bzw. 0110
.
Beim XOR ist die Bedingung nur erfüllt, wenn an einer der Stellen eine Eins und an der anderen eine Null steht. Stünden an beiden Stellen Einsen oder Nullen dann ergibt das wieder 0. Dadurch kommt das Ergebnis 4 (0100
) zu Stande.
print(b >> 1)=> 3
print(b << 1)=> 12
Der Schiebe-Operator verschiebt die Bits um eine Anzahl von Stellen (hier 1) nach Links oder Rechts.
Logische Operatoren
Logische Operatoren werden in der Regel dazu verwendet, Vergleiche zu Verknüpfen und arbeiten mit Boolean-Werten.
Im Grunde haben wir hier das gleiche Verhalten wie bei den bitweisen Operatoren zuvor. Der AND-Operator ist nur dann erfüllt, wenn beide Werte True
sind. In jedem Anderen Fall wird False
geliefert.
Der OR-Operator liefert True
wenn einer oder beide Werte True
sind und nur dann ein False
wenn beide Werte False sind.
Wenn Sie nun einen logischen XOR-Operator vermissen, dann kommt hier wieder die Vereinheitlichung der Lösungswege von Python durch. Diesen logischen Operator gibt es nicht aber dafür kann der Ungleich-Operator !=
verwendet werden.
Wichtig hierbei ist das beide Werte auch Boolean-Werte sind. Hierzu ein Beispiel:
print(bool(5) != bool(6)) | => False |
Natürlich ist 5 nicht gleich 6 und daher ist die erste Ausgabe vollkommen logisch. Bei der Umwandlung in den Typ Boolean werden jedoch 5 als auch 6 jeweils zu True
und daher wird in diesem Fall False
zurückgegeben.
Der Operator not
negiert einen Boolean-Wert und liefert das Gegenteil. not True
ergibt False
.
Vergleichsoperatoren
Diese Operatoren dienen dazu Werte mit einander zu vergleichen. Dazu zählen die folgenden Operatoren:
in | Element einer Liste / Teilstring |
Die Operatoren lassen sich sowohl auf Strings
print("aab" > "aad") | => False |
print("aab" < "aad") | => True |
print("aab" >= "aad") | => False |
print("aab" <= "aad") | => True |
print("aab" == "aad") | => False |
print("aab" != "aad") | => True |
als auch auf Zahlen anwenden | |