Interaktive Programme und Wiederholungen
message = input("Tell me something, and I will repeat it back to you: ")
print(message)
# Mit Prompt-Variable für bessere Lesbarkeit
prompt = "If you tell us who you are, we can personalize the messages."
prompt += "\nWhat is your first name? "
name = input(prompt)
print(f"\nHello, {name}!")
# input() gibt immer String zurück
age = input("How old are you? ")
print(type(age)) #
# Umwandlung in Integer
age = int(input("How old are you? "))
print(type(age)) #
# Modulo-Operator für gerade/ungerade
number = int(input("Enter a number: "))
if number % 2 == 0:
print(f"\nThe number {number} is even.")
else:
print(f"\nThe number {number} is odd.")
→ kapitel_7_aufgaben_7-1_7-3.ipynb
↓ Lösungen
# 7-1: Leihwagen
car = input("Welches Auto möchtest du leihen? ")
print(f"Ich schaue, ob ich dir ein {car} finden kann.")
# 7-2: Restaurantplätze
party_size = int(input("Wie viele Personen sind in eurer Gruppe? "))
if party_size > 8:
print("Sie müssen auf einen Tisch warten.")
else:
print("Ihr Tisch ist bereit.")
# 7-3: Vielfache von 10
number = int(input("Gib eine Zahl ein: "))
if number % 10 == 0:
print(f"{number} ist ein Vielfaches von 10.")
else:
print(f"{number} ist kein Vielfaches von 10.")
Ausgabe:
Welches Auto möchtest du leihen? SUV
Ich schaue, ob ich dir ein SUV finden kann.
Wie viele Personen sind in eurer Gruppe? 6
Ihr Tisch ist bereit.
Gib eine Zahl ein: 20
20 ist ein Vielfaches von 10.
Wiederholen Code solange eine Bedingung True ist
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
# Benutzer-gesteuerte Schleife
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
message = ""
while message != 'quit':
message = input(prompt)
if message != 'quit':
print(message)
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print(message)
# break-Anweisung
while True:
message = input(prompt)
if message == 'quit':
break
else:
print(message)
current_number = 0
while current_number < 10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number)
# Ausgabe: 1, 3, 5, 7, 9
# Endlosschleifen vermeiden
x = 1
while x <= 5:
print(x)
x += 1 # Wichtig: Zähler erhöhen!
→ kapitel_7_aufgaben_7-4_7-7.ipynb
↓ Lösungen
# 7-4: Pizzabeläge
prompt = "\nWelchen Belag möchtest du auf deiner Pizza?"
prompt += "\nGib 'fertig' ein, wenn du fertig bist: "
while True:
topping = input(prompt)
if topping == 'fertig':
break
else:
print(f"Ich füge {topping} zu deiner Pizza hinzu.")
Ausgabe:
Welchen Belag möchtest du auf deiner Pizza?
Gib 'fertig' ein, wenn du fertig bist: Pilze
Ich füge Pilze zu deiner Pizza hinzu.
Welchen Belag möchtest du auf deiner Pizza?
Gib 'fertig' ein, wenn du fertig bist: Pepperoni
Ich füge Pepperoni zu deiner Pizza hinzu.
Welchen Belag möchtest du auf deiner Pizza?
Gib 'fertig' ein, wenn du fertig bist: fertig
# 7-5: Eintrittskarten
prompt = "\nWie alt bist du?"
prompt += "\nGib 'fertig' ein, wenn du fertig bist: "
while True:
age = input(prompt)
if age == 'fertig':
break
age = int(age)
if age < 3:
print("Dein Ticket ist kostenlos.")
elif age < 12:
print("Dein Ticket kostet 10 €.")
else:
print("Dein Ticket kostet 15 €.")
Ausgabe:
Wie alt bist du?
Gib 'fertig' ein, wenn du fertig bist: 25
Dein Ticket kostet 15 €.
Wie alt bist du?
Gib 'fertig' ein, wenn du fertig bist: 8
Dein Ticket kostet 10 €.
Wie alt bist du?
Gib 'fertig' ein, wenn du fertig bist: fertig
# 7-6: Drei Arten der Beendigung
# 1. Bedingung in while-Anweisung
topping = ""
while topping != 'quit':
topping = input("Enter a topping (or 'quit'): ")
if topping != 'quit':
print(f"Adding {topping}")
# 2. Flagvariable
active = True
while active:
topping = input("Enter a topping (or 'quit'): ")
if topping == 'quit':
active = False
else:
print(f"Adding {topping}")
# 3. break-Anweisung
while True:
topping = input("Belag eingeben (oder 'fertig'): ")
if topping == 'fertig':
break
print(f"Hinzufügen: {topping}")
Ausgabe:
Belag eingeben (oder 'fertig'): Käse
Hinzufügen: Käse
Belag eingeben (oder 'fertig'): fertig
Belag eingeben (oder 'fertig'): Oliven
Hinzufügen: Oliven
Belag eingeben (oder 'fertig'): fertig
Belag eingeben (oder 'fertig'): Tomaten
Hinzufügen: Tomaten
Belag eingeben (oder 'fertig'): fertig
# 7-7: Endlosschleife
while True:
print("Das läuft ewig! Drücke Strg+C zum Stoppen.")
Ausgabe:
Das läuft ewig! Drücke Strg+C zum Stoppen.
Das läuft ewig! Drücke Strg+C zum Stoppen.
Das läuft ewig! Drücke Strg+C zum Stoppen.
... (läuft weiter bis gestoppt)
# Elemente zwischen Listen verschieben
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
while unconfirmed_users:
current_user = unconfirmed_users.pop()
print(f"Verifying user: {current_user.title()}")
confirmed_users.append(current_user)
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
print(confirmed_user.title())
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
# Dictionary mit Benutzereingaben füllen
responses = {}
polling_active = True
while polling_active:
name = input("\nWhat is your name? ")
response = input("Which mountain would you like to climb someday? ")
responses[name] = response
repeat = input("Would you like to let another person respond? (yes/ no) ")
if repeat == 'no':
polling_active = False
print("\n--- Poll Results ---")
for name, response in responses.items():
print(f"{name} would like to climb {response}.")
→ kapitel_7_aufgaben_7-8_7-10.ipynb
↓ Lösungen
# 7-8: Sandwiches
sandwich_orders = ['tuna', 'ham', 'turkey', 'veggie', 'club']
finished_sandwiches = []
while sandwich_orders:
current_sandwich = sandwich_orders.pop()
print(f"Ich habe dein {current_sandwich}-Sandwich gemacht.")
finished_sandwiches.append(current_sandwich)
print("\nAlle Sandwiches fertig:")
for sandwich in finished_sandwiches:
print(f"- {sandwich.title()}")
# 7-9: Kein Pastrami
sandwich_orders = ['pastrami', 'tuna', 'pastrami', 'ham', 'pastrami', 'turkey']
finished_sandwiches = []
print("Das Deli hat kein Pastrami mehr.")
while 'pastrami' in sandwich_orders:
sandwich_orders.remove('pastrami')
while sandwich_orders:
current_sandwich = sandwich_orders.pop()
print(f"Ich habe dein {current_sandwich}-Sandwich gemacht.")
finished_sandwiches.append(current_sandwich)
Ausgabe:
Ich habe dein club-Sandwich gemacht.
Ich habe dein veggie-Sandwich gemacht.
Ich habe dein turkey-Sandwich gemacht.
Ich habe dein ham-Sandwich gemacht.
Ich habe dein tuna-Sandwich gemacht.
Alle Sandwiches fertig:
- Club
- Veggie
- Turkey
- Ham
- Tuna
Das Deli hat kein Pastrami mehr.
Ich habe dein turkey-Sandwich gemacht.
Ich habe dein ham-Sandwich gemacht.
Ich habe dein tuna-Sandwich gemacht.
# 7-10: Traumurlaub
responses = {}
while True:
name = input("\nWie heißt du? ")
place = input("Wenn du einen Ort auf der Welt besuchen könntest, wohin würdest du gehen? ")
responses[name] = place
repeat = input("Möchte eine weitere Person antworten? (ja/nein) ")
if repeat == 'nein':
break
print("\n--- Traumurlaub-Umfrage Ergebnisse ---")
for name, place in responses.items():
print(f"{name.title()} möchte {place.title()} besuchen.")
Ausgabe:
Wie heißt du? Alice
Wenn du einen Ort auf der Welt besuchen könntest, wohin würdest du gehen? Japan
Möchte eine weitere Person antworten? (ja/nein) ja
Wie heißt du? Bob
Wenn du einen Ort auf der Welt besuchen könntest, wohin würdest du gehen? Italien
Möchte eine weitere Person antworten? (ja/nein) nein
--- Traumurlaub-Umfrage Ergebnisse ---
Alice möchte Japan besuchen.
Bob möchte Italien besuchen.
# Gut - mit Validierung
try:
age = int(input("Enter your age: "))
except ValueError:
print("Please enter a valid number.")
# Gut - klarer Prompt
prompt = "Enter 'quit' to exit or any other text to continue: "
message = input(prompt)