4. Unterrichtsblock
Kursinhalte
Python Operatoren
Operatoren werden verwendet, um Operationen an Variablen und Werten auszuführen. Im folgenden Beispiel wird der +
Operator verwendet, um zwei Werte zu addieren:
print(10 + 5)
Python teilt die Operatoren in folgende Gruppen ein:
- Arithmetikoperatoren (Rechenzeichen)
- Zuweisungsoperatoren
- Vergleichsoperatoren
- Logische Operatoren
- Identitätsoperatoren
- Zugehörigkeitsperatoren
- Bitweise-Operatoren
Python Arithmetikoperatoren
Arithmetische Operatoren werden mit numerischen Werten verwendet, um allgemeine mathematische Operationen auszuführen:
Operator | Name | Beispiel |
---|---|---|
+ | Addition | x + y |
– | Subtraktion | x – y |
* | Multiplikation | x * y |
/ | Division | x / y |
% | Rest (Modulus) | x % y |
** | Potenzierung | x ** y |
// | Ganzzahldivision (ohne Rest) | x // y |
Aufgabe
Probiere o.g. Operatoren aus.
Python Zuweisungsoperatoren
Zuweisungsoperatoren werden verwendet, um Variablen Werte zuzuweisen:
Operator | Beispiel | Gleich zu |
---|---|---|
= | x = 5 | x = 5 |
+= | x += 3 | x = x + 3 |
-= | x -= 3 | x = x – 3 |
*= | x *= 3 | x = x * 3 |
/= | x /= 3 | x = x / 3 |
%= | x %= 3 | x = x % 3 |
//= | x //= 3 | x = x // 3 |
**= | x **= 3 | x = x ** 3 |
&= | x &= 3 | x = x & 3 |
|= | x |= 3 | x = x | 3 |
^= | x ^= 3 | x = x ^ 3 |
>>= | x >>= 3 | x = x >> 3 |
<<= | x <<= 3 | x = x << 3 |
Aufgabe
Probiere o.g. Operatoren aus.
Python Vergleichsoperatoren
Vergleichsoperatoren werden verwendet, um zwei Werte zu vergleichen:
Operator | Name | Beispiel |
---|---|---|
== | Ist gleich | x == y |
!= | Ist nicht gleich | x != y |
> | Größer als | x > y |
< | Kleiner als | x < y |
>= | Größer oder gleich | x >= y |
<= | Kleiner oder gleich | x <= y |
Aufgabe
Probiere o.g. Operatoren aus.
Python Logikoperatoren
Logische Operatoren werden verwendet, um bedingte Anweisungen zu kombinieren:
Operator | Beschreibung | Beispiel |
---|---|---|
and | Gibt true aus, wenn beide Bedingungen wahr sind | x < 5 and x < 10 |
or | Gibt true aus, wenn einer der beiden Bedingungen wahr ist | x < 5 or x < 4 |
not | Kehrt das Ergebnis um – gibt true aus, wenn die Bedingung falsch ist | not(x < 5 and x < 10) |
# Beispiel and Operator
x = 5
print(x > 3 and x < 10) # Gibt True aus, weil 5 größer als 3 AND 5 kleiner als 10 ist
# Beispiel or Operator
x = 5
print(x > 3 or x < 4) # Gibt True aus, weil eine der Bedingungen wahr ist
# Beispiel not Operator
x = 5
print(not(x > 3 and x < 10)) # Gibt False aus, weil beide Bedingungen wahr sind
Python Identitätsoperatoren
Identitätsoperatoren werden verwendet, um die Objekte zu vergleichen, nicht wenn sie gleich sind, sondern wenn sie tatsächlich dasselbe Objekt mit demselben Speicherort sind:
Operator | Beschreibung | Beispiel |
---|---|---|
is | Gibt True zurück, wenn beide Variablen dasselbe Objekt sind | x is y |
is not | Gibt True zurück, wenn beide Variablen nicht dasselbe Objekt sind | x is not y |
# Beispiel
x = ["Zwetschge", "Apfel"]
y = ["Zwetschge", "Apfel"]
z = x
print(x is z) # Gibt True aus, weil z im selben Objekt wie x ist
print(x is y) # Gibt False aus, weil x nicht im selben Objekt wie y ist, selbst wenn beide den selben Inhalt haben
print(x == y) # Um den Unterschied zwischen "is" und "==" zu demonstrieren
Python Zugehörigkeitsoperatoren
Zugehörigkeitsoperatoren werden verwendet, um zu testen, ob eine Sequenz in einem Objekt dargestellt wird:
Operator | Beschreibung | Beispiel |
---|---|---|
in | Gibt True zurück, wenn eine Sequenz mit dem angegebenen Wert im Objekt vorhanden ist | x in y |
not in | Gibt True zurück, wenn eine Sequenz mit dem angegebenen Wert nicht im Objekt vorhanden ist | x not in y |
# Beispiel
x = ["Zwetschge", "Apfel"]
print("Apfel" in x)
# Gibt True aus, weil die Sequenz mit dem Wert "Apfel" in der Liste enthalten ist
Bitweise Python-Operatoren
Bitweise Operatoren werden verwendet, um (binäre) Zahlen zu vergleichen:
Operator | Name | Beschreibung | Beispiel |
---|---|---|---|
& | AND | Setzt jedes Bit auf 1, wenn beide Bits 1 sind | x & y |
| | OR | Setzt jedes Bit auf 1, wenn eines von zwei Bits 1 ist | x | y |
^ | XOR | Setzt jedes Bit auf 1, wenn nur eines von zwei Bits 1 ist | x ^ y |
~ | NOT | Kehrt die Bits um (Komplementäroperator) | ~x |
<< | Zero fill left shift | Verschiebung nach links, indem Nullen von rechts hinzugefügt werden und die Bits ganz links wegfallen | x << 2 |
>> | Signed right shift | Verschiebung nach rechts, indem Kopien des Bits ganz links von links hinzugefügt werden, und die Bits ganz rechts wegfallen | x >> 2 |
Beispiele zu bitweisen Operatoren: https://www.digitalocean.com/community/tutorials/python-bitwise-operators
Prioritäten von Operatoren
Die Operatorpriorität beschreibt die Reihenfolge, in der Operationen ausgeführt werden.
Klammern haben den höchsten Vorrang, was bedeutet, dass Ausdrücke innerhalb von Klammern zuerst ausgewertet werden müssen:
print((6 + 3) - (6 + 3)) # Ergebnis?
Die Multiplikation *
hat Vorrang vor der Addition +
, daher werden Multiplikationen vor Additionen ausgewertet:
print(100 + 5 * 3) # Ergebnis?
Die Prioritätsreihenfolge wird in der folgenden Tabelle beschrieben, beginnend mit der höchsten Priorität ganz oben:
Operator | Beschreibung |
---|---|
() | Klammern |
** | Potenzierung |
+x -x ~x | Unäres Plus, unäres Minus und bitweises NICHT |
* / // % | Multiplikation, Division, Ganzzahl Division und Rest |
+ - | Addition und Subtraktion |
<< >> | Bitweise links and rechts shifts |
& | Bitweises UND |
^ | Bitweises XODER |
| | Bitweises ODER |
== != > >= < <= is is not in not in | Vergleichs-, Identitäts-, und Zugehörigkeits-Operatoren |
not | logisches NICHT |
and | UND |
or | ODER |
Wenn zwei Operatoren dieselbe Priorität haben, wird der Ausdruck von links nach rechts ausgewertet. Addition +
und Subtraktion -
haben dieselbe Priorität, daher wertet Python den Ausdruck von links nach rechts aus:
print(5 + 4 - 7 + 3) # Ergebnis?
Aufgabe
Probiere o.g. Reihenfolge von Operatoren aus.
- Multipliziere 25 mit 4 und drucke das Ergebnis aus
- Teile 100 durch 5 und drucke das Ergebnis aus
# Verwende den richtigen Zugehörigkeitsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob "Zwetschge" im Obst-Objekt vorhanden ist
obst = ["Zwetschge", "Apfel"]
if "Zwetschge" __ obst:
print("Ja, Zwetschge zählt zu Obst!")
# Prüfe mit dem richtigen Vergleichsoperator anstelle der __ zwei Unterstriche, ob 5 ungleich 10 ist
if 5 __ 10:
print("5 und 10 sind nicht gleich")
# Verwende den richtigen logischen Operator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob mindestens eine von zwei Aussagen wahr ist
if 7 == 115 __ 200 == 200:
print("Mindestens eine der Aussagen ist wahr")
Boolsche Werte
Beim Programmieren muss man oft wissen, ob ein Ausdruck True
oder False
ist. Man kann jeden Ausdruck in Python auswerten und eine von zwei Antworten erhalten: True
oder False
.
Wenn man zwei Werte vergleicht, wird der Ausdruck ausgewertet und Python gibt die boolesche Antwort zurück:
print(10 > 9)
print(10 == 9)
print(10 < 9)
Wenn man eine Bedingung in einer if-Anweisung ausführt, gibt Python True
oder False
zurück:
# Ausgabe einer Nachricht basierend darauf, ob die Bedingung True oder False ist:
a = 200
b = 33
if b > a:
print("b ist größer als a")
else:
print("b ist nicht größer als a")
Werte und Variablen auswerten
Mit der bool()
Funktion kann man jeden Wert auswerten und True
oder False
erhalten
# Auswertung eines Strings und einer Zahl:
print(bool("Hello"))
print(bool(15))
Aufgabe
Probiere o.g. Funktion aus.
# Bewertung von zwei Variablen:
x = "Hello"
y = 15
print(bool(x))
print(bool(y))
Aufgabe
Probiere o.g. Funktion aus.
Die meisten Werte sind wahr
Fast jeder Wert wird mit True
bewertet, wenn er irgendeinen Inhalt hat.
- Jeder String ist
True
, außer leeren Strings. - Jede Zahl ist
True
, außer0
. - Alle Listen, Tupel, Mengen und Dictionaries sind
True
, außer leere.
# Folgendes wird True zurückgeben:
bool("abc")
bool(123)
bool(["Zwetschge", "Apfel", "Birne"])
Einige Werte sind falsch
Tatsächlich gibt es nicht viele Werte, die als False
gewerten werden, außer leeren Werten wie ()
, []
, {}
, ""
, die Zahl 0
und dem Wert None
. Und natürlich ergibt False
ebenfalls den Wert False
.
# Folgendes gibt False zurück:
bool(False)
bool(None)
bool(0)
bool("")
bool(())
bool([])
bool({})
Ein weiterer Wert, oder in diesem Fall ein Objekt wird als False
ausgewertet: Das ist dann der Fall, wenn man ein Objekt hat, das aus einer Klasse mit einer __len__
Funktion besteht, die 0
oder False
zurückgibt:
class meineklasse():
def __len__(self):
return 0
meinobjekt = meineklasse()
print(bool(meinobjekt))
Funktionen können einen booleschen Wert zurückgeben
Man kann Funktionen erstellen, die einen booleschen Wert zurückgeben:
# Gib die Antwort einer Funktion aus:
def meineFunktion() :
return True
print(meineFunktion())
Man kann Code basierend auf der booleschen Antwort einer Funktion ausführen:
# Gib "JA!" aus, wenn die Funktion True zurückgibt, ansonsten wird "NEIN!" ausgeben:
def meineFunktion() :
return True
if meineFunktion():
print("JA!")
else:
print("NEIN!")
Python hat auch viele eingebaute Funktionen, die einen booleschen Wert zurückgeben, wie die isinstance()
Funktion, die verwendet werden kann, um festzustellen, ob ein Objekt von einem bestimmten Datentyp ist:
# Überprüfung, ob ein Objekt eine ganze Zahl ist oder nicht:
x = 200
print(isinstance(x, int))
Aufgabe
Teste die Codes aus dieser Lektion und verwende dabei unterschiedliche Werte & Parameter.
Löse folgende Aufgaben:
# Welcher Wert wird ausgegeben?
print(7 > 6)
# Welcher Wert wird ausgegeben?
print(15 == 10)
# Welcher Wert wird ausgegeben?
print(7 < 6)
# Welcher Wert wird ausgegeben?
print(bool("Zwetschge"))
# Welcher Wert wird ausgegeben?
print(bool(0))
Aufgabe
Kombiniere das heute Erlernte mit den Inhalten vorherigen Unterrichtsblöcke und probiere verschiedene Konstellationen aus.
# Verwende den richtigen Zugehörigkeitsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob "Banane" nicht im Obst-Objekt ist
obst = ["Apfel", "Orange"]
if "Banane" __ obst:
print("Banane ist nicht unter den Obstsorten!")
# Prüfe mit dem richtigen Vergleichsoperator anstelle der __ zwei Unterstriche,
# ob 15 größer ist als 10
if 15 __ 10:
print("15 ist größer als 10")
# Verwende den richtigen logischen Operator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob beide Aussagen falsch sind
if __ (3 > 5 __ 7 < 2):
print("Beide Aussagen sind falsch")
# Verwende den richtigen Identitätsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob beide Variablen auf dasselbe Objekt verweisen
a = [1, 2, 3]
b = a
if a __ b:
print("a und b verweisen auf dasselbe Objekt")
# Verwende den richtigen Vergleichsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob 8 kleiner oder gleich 8 ist
if 8 __ 8:
print("8 ist kleiner oder gleich 8")
# Verwende den richtigen logischen Operator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob beide Bedingungen wahr sind
if True __ (10 > 2):
print("Beide Bedingungen sind wahr")
# Prüfe mit dem richtigen Zugehörigkeitsoperator anstelle der __ zwei Unterstriche,
# ob die Zahl 4 in der Liste vorhanden ist
zahlen = [3, 4, 5]
if 4 __ zahlen:
print("Die Zahl 4 ist in der Liste")
# Verwende den richtigen Vergleichsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob 100 nicht kleiner ist als 50
if 100 __ 50:
print("100 ist nicht kleiner als 50")
# Verwende den richtigen Identitätsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob x und y nicht dasselbe Objekt darstellen
x = [10, 20, 30]
y = [10, 20, 30]
if x __ y:
print("x und y sind nicht dasselbe Objekt")
# Verwende den richtigen Zugehörigkeitsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob "Apfel" in einer Textzeichenfolge enthalten ist
obst = "Ich habe einen Apfel und eine Orange"
if "Apfel" __ obst:
print("Der Text enthält einen Apfel")
# Verwende den richtigen logischen Operator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob eine Bedingung oder die andere wahr ist
if 6 < 3 __ 8 > 2:
print("Eine der beiden Bedingungen ist wahr")
# Prüfe mit dem richtigen Vergleichsoperator anstelle der __ zwei Unterstriche,
# ob 50 gleich 50 ist
if 50 __ 50:
print("50 ist gleich 50")
# Verwende den richtigen Zugehörigkeitsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob "Kirsche" nicht in der Liste enthalten ist
obst = ["Banane", "Erdbeere"]
if "Kirsche" __ obst:
print("Kirsche ist nicht in der Liste enthalten")
# Verwende den richtigen logischen Operator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob keine der beiden Aussagen gleichzeitig wahr ist
if __ (9 > 4 __ 5 < 3):
print("Keine der beiden Aussagen ist gleichzeitig wahr")
"""
Logische Operatoren:
and: Dieser Operator gibt True zurück, wenn beide Bedingungen innerhalb der Klammern True sind. Andernfalls gibt er False zurück.
not: Dieser Operator negiert den Wahrheitswert der nachfolgenden Aussage (nimmt True, macht False daraus, oder umgekehrt).
Bedingungen:
9 > 4: Das ist True, weil 9 tatsächlich größer als 4 ist.
5 < 3: Das ist False, weil 5 nicht kleiner als 3 ist.
Kombination der Bedingungen mit and:
(9 > 4 and 5 < 3): In diesem Ausdruck wird überprüft, ob beide Bedingungen True sind. Da nur die erste Bedingung True ist und die zweite False, ergibt die gesamte Bedingung False.
Anwendung des not Operators:
not (False): Der False Wert von 9 > 4 and 5 < 3 wird durch den not Operator negiert. Das Ergebnis ist True.
"""
# Verwende den richtigen Vergleichsoperator anstelle der __ zwei Unterstriche,
# um zu prüfen, ob -5 ungleich -10 ist
if -5 __ -10:
print("-5 ist ungleich -10")