programmierung
und datenbanken

Joern Ploennigs

Verzweigung

Midjourney: Red or Blue Pill, ref. Leonardo da Vinci

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 Werte
    • a - Variablen Werte, wenn a mit einem Bool belegt wurde, bzw. das Bool-Äquivalent von a
    • 2 < 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 - wenn
    • else - sonst
    • elif - 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 ein if
  • Wird ausgeführt wenn die im if angegebene Bedingung false 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 die elif-Anweisung verwenden, welche wie if 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

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¶

Midjourney: Six Sense

Welche Lerntypen gibt es?

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.

https://youtu.be/n0ql-yeY9u0

https://youtu.be/NONST7mwhX8

fragen?

programmierung
und datenbanken