NB03_Operatoren¶
(c) 2026 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
Addition und Subtraktion¶
Die Addition und Subtraktion ist prinzipiell nicht erwähnenswert, da diese analog wie die Addition und Subtraktion in der Mathematik funktioniert.
Ebenso analog wie in der Mathematik können entsprechende Ausdrücke mit runden Klammern zusammengefasst werden.
Einzig die Umwandlung (Conversion) unterschiedlicher Variablen-Typen muss beachtet werden.
%%Mooc StringAssessment
Addition zweier Integer-Werte
Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden
a = 2
b = 5
und dann
a + b
berechnet wird,
was wird als Ergebnis angezeigt?
The correct answer is:2 + 5 ergibt 7
%%Mooc StringAssessment
Automatische Umwandlung einer Variablen !
Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden
a = 2
b = 5.0
und dann
a + b
berechnet wird,
was wird als Ergebnis angezeigt?
The correct answer is:Ein Integer-Wert zu einem Float-Wert addiert ergibt einen Float-Wert, d.h. 2+5.0 ergibt 7.0
Multiplikation und Division¶
Auch die Multiplikation und Division ist prinzipiell nicht erwähnenswert, da diese analog wie die Multiplikation und Division in der Mathematik funktioniert.
Ebenso wie bei der Addition und Subtraktion muss die Umwandlung (Conversion) unterschiedlicher Variablen-Typen beachtet werden, wobei die Division immer eine Variable vom Typ Float zurückliefert.
%%Mooc StringAssessment
Multiplikation zweier Integer-Werte
Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden
a = 2
b = 5
und dann
a * b
berechnet wird,
was wird als Ergebnis angezeigt?
The correct answer is:Die Multiplikation von 2 * 5 ergibt 10
%%Mooc StringAssessment
Automatische Umwandlung bei der Multiplikation
Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden
a = 2
b = 5.0
und dann
a * b
berechnet wird,
was wird als Ergebnis angezeigt?
The correct answer is:Die Multiplikation von 2 * 5.0 ergibt 10.0
%%Mooc StringAssessment
Division
Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden
a = 6
b = 3
und dann
a / b
berechnet wird,
was wird als Ergebnis angezeigt?
The correct answer is:Die Division zweier Zahlen ergibt immer einen Float-Wert, hier also 2.0
Weitere mathematische Operatoren¶
Die folgenden weiteren Operatoren sind ebenfalls in Python vorhanden:
- **** als Power- bzw. Potenz-Operator
- // als Floor-Division bzw. Abrundungs-Operator
- % als Remainder bzw. Modulo-Operator
%%Mooc StringAssessment
Aufrundungs-Operator
Es gibt in vielen Programmiersprachen keinen Aufrundungs-Operator. Warum nicht ?
Die Antwort hierzu lautet, dass er über den Abrundungs-Operator hergeleitet werden kann.
Wenn also
a // b
berechnet wird,
wie lautet dann die Berechnung der Aufrundung ?
The correct answer is:or
-(-a//b)
Es gilt stets, dass die Aufrundung einer Zahl plus die Abrundung der entsprechenden negativen Zahl Null ergibt. Daraus ergibt sich die Formel -(-a//b)
Boole'sche und Vergleichsoperatoren¶
Wahr und Falsch¶
In Python wird sehr oft abgefragt, ob ein Wert, eine Variable, ein Objekt wahr (True) oder falsch (False) ist.
Die folgenden Wert sind immer False:
- None
- False
- Null für jeden numerischen Typ, also 0, 0.0, 0j
- jede leere Liste oder Sequenz, also '', (), []
- jedes leere Dictionary, also {}
Alle[1] anderen Werte werden als wahr (True) angesehen — also insbesonders Objekte aller möglichen Typen[1] sind immer wahr.
Operationen und Funktionen mit einem Boole'schen Wert als Rückgabe geben immer 0 oder False für falsch und 1 oder True für wahr zurück.
%%Mooc MultipleChoiceAssessment
Wahr oder Falsch ?
Welche der folgenden Aussagen ist wahr ?
Boole'sche Operatoren and, or, not¶
| Operation | Ergebnis | Anmerkung |
|---|---|---|
| x or y | wenn x falsch ist, dann y andernfalls x | (1) |
| x and y | wenn x falsch ist, dann x, andernfalls y | (2) |
| not x | wenn x falsch ist, dann wahr andernfalls falsch | (3) |
Anmerkungen:
- Dies ist ein Kurzschluss-Operator (short-circuit operator), der das zweite Argument nur dann abprüft, wenn das erste falsch ist.
- Dies ist ebenfalls ein Kurzschluss-Operator, der das zweite Argument nur dann abprüft, wenn das erste wahr ist.
- not hat eine geringere Priorität als nicht-boolesche Operatoren, d.h. not a == b wird als not (a == b) interpretiert und a == not b ist ein Syntax Fehler.
Vergleichsoperationen¶
Es gibt in Python 8 Vergleichsoperatoren, die alle die gleiche Priorität haben (die höher ist als diejenige von Boole'schen Operatoren):
| Operation | Meaning |
|---|---|
| < | kleiner als |
| <= | kleiner oder gleich als |
| > | größer als |
| >= | größer oder gleich als |
| == | gleich |
| != | ungleich |
| is | Objektidentität |
| is not | keine Objektidentität |
Vergleichsoperationen können beliebig verkettet werden, z.B. x < y <= z ist äquivalent zu x < y and y <= z, ausgenommen, dass hier im ersten Fall y nur einmal verwendet wird (aber in beiden Fällen z nur dann verwendet wird, wenn x < y falsch ist).
%%Mooc StringAssessment
Vergleichsoperation
Die Variablen a,b und c sind folgendermaßen vorbesetzt:
a = 5
b = 15
c = None
und werden in die folgende Vergleichsoperation eingesetzt:
a < b and c
Wie lautet dann das Ergebnis der Vergleichsoperation ?
The correct answer is:or
0
a < b (5 < 15) ist wahr sodass das zweite Argument 'c' entscheidet, None ist falsch, also insgesamt falsch
%%Mooc MultipleChoiceAssessment
Objektidentität - 1
Die Variablen a und b werden folgendermaßen vorbesetzt:
a = [1,3,5,7,11]
b = a
und werden in die folgende Vergleichsoperation eingesetzt:
a is b
Ist das Ergebnis der Vergleichsoperation wahr oder falsch ?
%%Mooc MultipleChoiceAssessment
Objektidentität - 2
Die Variablen a und b werden folgendermaßen vorbesetzt:
a = [1,3,5,7,11]
b = a[:]
und werden in die folgende Vergleichsoperation eingesetzt:
a is b
Ist das Ergebnis der Vergleichsoperation wahr oder falsch ?
%%Mooc Video
Bit-Operatoren¶
Für Bit-Operationen stehen die folgenden Bit-Operatoren zur Verfügung:
| Operation | Beschreibung |
|---|---|
| x | y | bitweises oder von x und y |
| x ^ y | bitweises exklusives oder von x und y |
| x & y | bitweises und von x und y |
| x << n | x wird um n bits nach links geschoben |
| x >> n | x wird um n bits nach rechts geschoben |
| ~x | alle bits von x werden invertiert |
%%Mooc StringAssessment
Bit-Operatoren
In der Programmierung wird - um Speicherplatz zu sparen - oftmals mit Masken gearbeitet. Wenn also z.B. in einem Byte alle Bits unterschiedliche Informationen beinhalten, dann muss der Programmieren diese Informationen auch wieder einzeln herauslesen können.
Wenn also
a = 221
und das 2. und 3. Bit relevante Informationen enthält, so bekommt man diese
mit welcher Berechnung ?
The correct answer is:or
bin(a & 0b01100000)
Mit dem und-Operator & werden nur die Bits herausgefiltert, an deren Stelle eine 1 steht
Weitere Literatur¶
%%Mooc WebReference
Boolean Operations
https://docs.python.org/3/reference/expressions.html#boolean-operations
Hinweis: Referenz Dokumentation zu den Booleschen Operatoren
%%Mooc WebReference
Comparisons
https://docs.python.org/3/reference/expressions.html#comparisons
Hinweis: Referenz Dokumentation zu den Vergleichsoperatoren
%%Mooc WebReference
Binary Bitwise Operations
https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations
Hinweis: Referenz Dokumentation zu den Bitoperatoren