programmierung
und datenbanken
Joern Ploennigs
Verzweigung
Ablauf¶
Bedingtes Verzweigen¶
Wir können Steueranweisungen benutzen, die basierend auf einer Bedingung ein bestimmtes Statement „ansteuern".
Diese Bedingungen sind Statements deren Ausgabe ein Boolean-Wert (True oder False) ist:
True
- Logische Wertea
- Variablen Werte, wenn a mit einem Bool belegt wurde, bzw. das Bool-Äquivalent von a2 < 5
- Alle Vergleichsoperatoren
Wenn … Dann …¶
Die Grundform solcher Verzweigungen ist:
„Wenn die Bedingung zutrifft, dann führe folgende Statements aus"
Oft folgt außerdem ein „sonst führe stattdessen folgendes Statement aus"
Python kennt drei Anweisungen zur Verzweigung:
if
- wennelse
- sonstelif
- kurz für else-if
IF-Statement¶
Die If-Anweisung ist nötig, um eine Verzweigung zu beginnen.
Wichtig: Der bedingte Code-Block muss eingerückt werden
if Bedingung:
# dann führe den folgenden Block nur aus wenn die Bedingung wahr ist
Statement1
Statement2
# ...
Ist die Bedingung True
, werden die eingerückten Statements ausgeführt.
Beispiel: IF-Statement zum Überspringen von Code¶
activateOutput = True
a = 10
b = 13
c = math.sqrt(a**2 + b**2) # Pythagoras
if activateOutput:
print("Seitenlänge:" + str(c))
umfang = a + b + c
# ...
Alternativen¶
else
folgt nur auf einif
- Wird ausgeführt wenn die im
if
angegebene Bedingungfalse
zurückgibt - Benötigt ebenso Einrückung des bedingten Code-Blocks
if Bedingung:
# dann führe den folgenden Block nur aus wenn Bedingung wahr ist
Statement1
Statement2
# ...
else:
Statement1b
# ...
Beispiel: Division durch 0 abfangen (Einfache Verzweigung)¶
Implizite Version
a = 5
b = 0
if b: # der Wahrheitswert eines int-Wertes ist false bei 0 und Wahr für != 0
c = a / b
else:
print("Division by Zero")
c = None
Beispiel: Division durch 0 abfangen (Einfache Verzweigung)¶
Explizite Version
a = 5
b = 0
if b != 0: # Expliziter Wahrheitswert
c = a / b
else:
print("Division by Zero")
c = None
Verschachtelte Verzweigungen¶
Durch mehrfaches Einrücken können wir Verzweigungen in Verzweigungen definieren:
if Condition1:
StatementA
else:
if Condition2:
StatementB
else:
StatementC
Beispiel: Vorzeichen testen (Verschachtelte Verzweigung)¶
if a < 0:
print("Number is negative")
else:
if a > 0:
print("Number is positive")
else:
print("Number is zero")
Mehrfachverzweigung: ELIF-Statement¶
Anstatt einer
else
-Anweisung können wir dieelif
-Anweisung verwenden, welche wieif
eine Bedingung hat.Auf eine
elif
-Anweisung können folgen:- Eine weitere
elif
-Anweisung else
-Anweisung - wird aufgerufen wenn keine der bisherigen Anweisungen zutraf- Keine Anweisung – zweite Variante vom optionalen Code
- Eine weitere
Beispiel: Vorzeichen testen (Mehrfachverzweigung)¶
if a < 0:
print("Number is negative")
elif a > 0:
print("Number is positive")
else:
print("Number is zero")
Viel sauberer und lesbarer als verschachtelte if-else Statements!
Viele Alternativen¶
In Python 3.10 wurde das Match-Statement eingeführt, was es in vielen anderen Sprachen bereits gibt. Es erlaub eine Variable mit mehren möglichen Werten zu vergleichen.
Traditionell (viele elif):
if Variable == ValueA:
StatementA
elif Variable == ValueB:
StatementB
else:
StatementC
Neu (match-case):
match Variable:
case ValueA:
StatementA
case ValueB:
StatementB
case _:
StatementC
Lesson Learned - Notizen¶
- Sie sollten sich immer Notizen machen (weil wir uns geschriebenes taktil und visuell besser merken)
- Sie sollten nicht die Folien abschreiben, sondern eher Schlüsselinformationen, Begriffe und Fragen
- Sie sollten sich die Zeit nehmen um Notizen nachzuarbeiten, Fragen zu klären und Inhalte selbst zu strukturieren
Nacharbeit¶
- Survey (Überblick gewinnen): Blättert durch ein Thema und gewinnt einen Überblick
- Question (Fragen): Notiert euch Fragen zu Punkten die ihr nicht versteht.
- Read (Lesen): Lest eure Notizen durch; Hebt Schlüsselwörter hervor; Recherchiert zu den Fragen.
- Recite (Wiedergeben): Rekapituliert jeden Abschnitt (Inhalt, Schlüsselwörter, Zusammenhänge). Strukturiert euch die Inhalte, z.B. mit Mindmaps. Wiederholt Gelerntes mehrmals (Karteikarten).
- Review (Rückblick): Wiederholt gedanklich die wichtigsten Punkte und beantwortet eure Fragen.
fragen?
und datenbanken