Skip to content

Lösungen: Teil 7 - Bedingungen

Lösung 7.1: Einfache if-Bedingung

python
def ist_positiv(zahl):
    """Prüft, ob eine Zahl positiv ist."""
    if zahl > 0:
        return True
    else:
        return False

Variante 2 (kürzer):

python
def ist_positiv(zahl):
    """Prüft, ob eine Zahl positiv ist."""
    return zahl > 0

Erklärung: > prüft, ob links größer als rechts ist. Der Vergleich zahl > 0 gibt direkt True oder False zurück.


Lösung 7.2: if-elif-else

python
def zahl_klassifizieren(zahl):
    """Klassifiziert eine Zahl."""
    if zahl > 0:
        return "positiv"
    elif zahl < 0:
        return "negativ"
    else:
        return "null"

Erklärung:

  • if prüft die erste Bedingung
  • elif (else if) ist eine weitere Bedingung
  • else ist der Fallback, wenn keine Bedingung zutrifft

Lösung 7.3: Vergleich zweier Zahlen

python
def groessere_zahl(a, b):
    """Gibt die größere Zahl zurück."""
    if a >= b:
        return a
    else:
        return b

Variante 2 (mit max):

python
def groessere_zahl(a, b):
    """Gibt die größere Zahl zurück."""
    return max(a, b)

Erklärung: >= bedeutet "größer oder gleich". Bei gleichen Zahlen wird die erste zurückgegeben.


Lösung 7.4: Code Reading

Antworten:

  1. Was wird ausgegeben, wenn temperatur = 25?

    Es ist warm.
  2. Was wird ausgegeben, wenn temperatur = 35?

    Es ist heiß!
  3. Was wird ausgegeben, wenn temperatur = 5?

    Es ist kalt!
  4. Welche Bedingung wird bei temperatur = 25 überprüft und welche Bedingungen werden übersprungen?

    • temperatur > 30 wird geprüft → False (25 ist nicht > 30)
    • temperatur > 20 wird geprüft → True (25 ist > 20) → nachricht = "Es ist warm."
    • Die restlichen Bedingungen (temperatur > 10 und else) werden übersprungen, weil bereits eine Bedingung zutraf

Ablauf-Tabelle für verschiedene Temperaturen:

temperaturBedingung getroffennachrichtAusgabe
35temperatur > 30"Es ist heiß!"Es ist heiß!
25temperatur > 20"Es ist warm."Es ist warm.
15temperatur > 10"Es ist kühl."Es ist kühl.
5else"Es ist kalt!"Es ist kalt!

Lösung 7.5: Debugging

Fehler: Der Code verwendet > (größer als) statt >= (größer oder gleich). Eine Person mit Alter 18 sollte als volljährig gelten, aber 18 > 18 ist False.

Problem:

python
if alter > 18:  # 18 > 18 ist False!
    return "volljährig"

Korrekte Lösung:

python
def pruefe_volljaehrigkeit(alter):
    """Prüft, ob eine Person volljährig ist."""
    if alter >= 18:  # >= bedeutet "größer oder gleich"
        return "volljährig"
    else:
        return "minderjährig"

Erklärung:

  • > bedeutet "größer als" (18 zählt NICHT)
  • >= bedeutet "größer oder gleich" (18 zählt MIT)

Bonus-Übungen

Lösung Bonus 1: Gerade oder ungerade

python
def ist_gerade(zahl):
    """Prüft, ob eine Zahl gerade ist."""
    if zahl % 2 == 0:
        return True
    else:
        return False

Variante 2 (kürzer):

python
def ist_gerade(zahl):
    """Prüft, ob eine Zahl gerade ist."""
    return zahl % 2 == 0

Erklärung:

  • Der Modulo-Operator % gibt den Rest einer Division zurück
  • Gerade Zahlen haben Rest 0 bei Division durch 2
  • Beispiele: 4 % 2 = 0 (gerade), 7 % 2 = 1 (ungerade)

Lösung Bonus 2: Maximum von drei Zahlen

python
def maximum_von_drei(a, b, c):
    """Findet das Maximum von drei Zahlen."""
    if a >= b and a >= c:
        return a
    elif b >= a and b >= c:
        return b
    else:
        return c

Variante 2 (mit max):

python
def maximum_von_drei(a, b, c):
    """Findet das Maximum von drei Zahlen."""
    return max(a, b, c)

Variante 3 (schrittweise):

python
def maximum_von_drei(a, b, c):
    """Findet das Maximum von drei Zahlen."""
    # Erst Maximum von a und b finden
    if a >= b:
        groesser = a
    else:
        groesser = b

    # Dann mit c vergleichen
    if c >= groesser:
        return c
    else:
        return groesser

Erklärung: Wir vergleichen alle drei Zahlen und geben die größte zurück. Die max() Funktion macht das automatisch.

Informatik & ICT Unterricht Neufeld