NB03_Operatoren¶
(c) 2025 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?
%%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?
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?
%%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?
%%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?
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 ?
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 ?
%%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 ?
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