Python Crash Course

Kapitel 5

if-Anweisungen

Bedingte Ausführung und logische Tests

Was sind if-Anweisungen?

  • Ermöglichen bedingte Ausführung von Code
  • Testen Bedingungen und reagieren entsprechend
  • Grundlage für Entscheidungen in Programmen
  • Verwenden Boolean-Werte (True/False)
alter = 18
if alter >= 18:
    print("Du bist volljährig!")
else:
    print("Du bist noch minderjährig.")

Bedingte Tests

Tests ergeben immer True oder False

car = 'bmw'
print(car == 'bmw')    # True
print(car == 'audi')   # False

# Verschiedene Vergleiche
age = 25
print(age == 25)       # True
print(age != 30)       # True
print(age > 20)        # True
print(age <= 25)       # True

🛠️ Übung 1: Bedingungen

🔗 jupyter.gymnasium-hummelsbuettel.de

Aufgaben 5-1 und 5-2:

  • 5-1: Bedingungen schreiben und testen
  • 5-2: Verschiedene Vergleichsoperatoren
  • Je 5 True und 5 False Ergebnisse

→ kapitel_5_aufgaben_5-1_5-2.ipynb

↓ Lösungen

💡 Lösung 5-1

# 5-1: Bedingungen
car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')

print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')

# Weitere Tests
age = 25
print("Is age > 20? I predict True.")
print(age > 20)

print("Is age < 18? I predict False.")
print(age < 18)

📄 Ausgabe 5-1

Is car == 'subaru'? I predict True.
True

Is car == 'audi'? I predict False.
False
Is age > 20? I predict True.
True
Is age < 18? I predict False.
False

💡 Lösung 5-2

# 5-2: Verschiedene Tests
name = 'Alice'
print(name.lower() == 'alice')  # True

numbers = [1, 2, 3, 4, 5]
print(3 in numbers)             # True
print(6 not in numbers)         # True

# and/or Tests
age = 25
name = 'Bob'
print(age > 18 and name == 'Bob')  # True
print(age < 18 or name == 'Bob')   # True

📄 Ausgabe 5-2

True
True
True
True
True

if-elif-else Ketten

age = 12

if age < 4:
    price = 0
elif age < 18:
    price = 25
elif age < 65:
    price = 40
else:
    price = 20

print(f"Dein Eintrittspreis beträgt {price} Euro.")

Mehrere Bedingungen mit and und or

# and - beide Bedingungen müssen True sein
age_0 = 22
age_1 = 18
print(age_0 >= 21 and age_1 >= 21)  # False

# or - mindestens eine Bedingung muss True sein
age_0 = 22
age_1 = 18
print(age_0 >= 21 or age_1 >= 21)   # True

# in und not in
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in banned_users:
    print(f"{user.title()}, you can post a response.")

🛠️ Übung 2: if-elif-else

Aufgaben 5-3 bis 5-7:

  • 5-3/4/5: Raumschiff-Farben (if, if-else, if-elif-else)
  • 5-6: Altersstufen bestimmen
  • 5-7: Lieblingsobst testen

→ kapitel_5_aufgaben_5-3_5-7.ipynb

↓ Lösungen

💡 Lösung 5-3

# 5-3: Raumschiff grün
alien_color = 'green'
if alien_color == 'green':
    print("Du hast 5 Punkte erhalten!")

📄 Ausgabe 5-3

Du hast 5 Punkte erhalten!

💡 Lösung 5-4

# 5-4: if-else
alien_color = 'red'
if alien_color == 'green':
    print("Du hast 5 Punkte erhalten!")
else:
    print("Du hast 10 Punkte erhalten!")

📄 Ausgabe 5-4

Du hast 10 Punkte erhalten!

💡 Lösung 5-5

# 5-5: if-elif-else
alien_color = 'yellow'
if alien_color == 'green':
    print("Du hast 5 Punkte erhalten!")
elif alien_color == 'yellow':
    print("Du hast 10 Punkte erhalten!")
else:
    print("Du hast 15 Punkte erhalten!")

📄 Ausgabe 5-5

Du hast 10 Punkte erhalten!

💡 Lösung 5-6

# 5-6: Altersstufen
age = 25

if age < 2:
    print("Es ist ein Baby.")
elif age < 4:
    print("Es ist ein Kleinkind.")
elif age < 13:
    print("Es ist ein Kind.")
elif age < 20:
    print("Es ist ein Teenager.")
elif age < 65:
    print("Es ist ein Erwachsener.")
else:
    print("Es ist ein Rentner.")

📄 Ausgabe 5-6

Es ist ein Erwachsener.

💡 Lösung 5-7

# 5-7: Lieblingsobst
favorite_fruits = ['apple', 'banana', 'orange']
if 'apple' in favorite_fruits:
    print("You really like apples!")

📄 Ausgabe 5-7

You really like apples!

Listen und if-Anweisungen

requested_toppings = ['mushrooms', 'extra cheese']

for requested_topping in requested_toppings:
    if requested_topping == 'green peppers':
        print("Sorry, we are out of green peppers right now.")
    else:
        print(f"Adding {requested_topping}.")

print("\nFinished making your pizza!")

# Leere Liste überprüfen
if requested_toppings:
    # Liste ist nicht leer
    for topping in requested_toppings:
        print(f"Adding {topping}.")
else:
    print("Are you sure you want a plain pizza?")

🛠️ Übung 3: Listen testen

Aufgaben 5-8 bis 5-11:

  • 5-8: Hello Admin - spezielle Begrüßung
  • 5-9: Keine Benutzer - leere Liste
  • 5-10: Benutzernamen überprüfen
  • 5-11: Englische Ordnungszahlen

→ kapitel_5_aufgaben_5-8_5-11.ipynb

↓ Lösungen

💡 Lösung 5-8

# 5-8: Hello Admin
usernames = ['admin', 'alice', 'bob', 'charlie', 'diana']

for username in usernames:
    if username == 'admin':
        print("Hello admin, would you like to see a status report?")
    else:
        print(f"Hello {username}, thank you for logging in again.")

📄 Ausgabe 5-8

Hello admin, would you like to see a status report?
Hello alice, thank you for logging in again.
Hello bob, thank you for logging in again.
Hello charlie, thank you for logging in again.
Hello diana, thank you for logging in again.

💡 Lösung 5-9

# 5-9: Keine Benutzer
usernames = []

if usernames:
    for username in usernames:
        print(f"Hello {username}!")
else:
    print("We need to find some users!")

📄 Ausgabe 5-9

We need to find some users!

💡 Lösung 5-10

# 5-10: Benutzernamen überprüfen
current_users = ['alice', 'bob', 'charlie', 'diana', 'eve']
new_users = ['Alice', 'frank', 'Bob', 'grace', 'henry']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user.lower() in current_users_lower:
        print(f"Sorry, {new_user} is not available.")
    else:
        print(f"Great, {new_user} is available!")

📄 Ausgabe 5-10

Sorry, Alice is not available.
Great, frank is available!
Sorry, Bob is not available.
Great, grace is available!
Great, henry is available!

💡 Lösung 5-11

# 5-11: Ordnungszahlen
numbers = list(range(1, 10))
for number in numbers:
    if number == 1:
        print("1st")
    elif number == 2:
        print("2nd")
    elif number == 3:
        print("3rd")
    else:
        print(f"{number}th")

📄 Ausgabe 5-11

1st
2nd
3rd
4th
5th
6th
7th
8th
9th

🛠️ Übung 4: Code-Gestaltung

Aufgaben 5-12 und 5-13:

  • 5-12: if-Anweisungen formatieren
  • 5-13: Eigene Programmideen entwickeln

→ kapitel_5_aufgaben_5-12_5-13.ipynb

↓ Lösungen

💡 Lösung 5-12

# 5-12: Gute Formatierung
age = 25

# Gut formatiert
if age >= 18:
    print("Du bist volljährig!")
else:
    print("Du bist minderjährig!")

# Schlecht formatiert - zu vermeiden
if age>=18:print("Volljährig!")

📄 Ausgabe 5-12

Du bist volljährig!
Volljährig!

💡 Lösung 5-13

# 5-13: Programmideen
# - Notenverwaltungssystem
# - Einfaches Quiz-Spiel
# - Wetter-App
# - To-Do-Liste
# - Taschenrechner
print("Programmideen gesammelt!")

📄 Ausgabe 5-13

Programmideen gesammelt!

Zusammenfassung Kapitel 5

  • if-Anweisungen: Bedingte Code-Ausführung
  • Vergleichsoperatoren: ==, !=, <, >, <=, >=
  • Logische Operatoren: and, or, not
  • in/not in: Mitgliedschaft in Listen prüfen
  • if-elif-else: Mehrere Bedingungen
  • Listen testen: Leere Listen und Inhalte prüfen

Praktische Tipps

  • Formatierung: Leerzeichen um Operatoren
  • Einrückung: Konsistent 4 Leerzeichen
  • Vergleiche: == für Gleichheit, = für Zuweisung
  • Boolean-Tests: if liste: statt if len(liste) > 0:
# Gut
if age >= 18 and name == 'Alice':
    print("Willkommen!")

# Vermeiden
if age>=18and name=='Alice':
    print("Willkommen!")