For-Schleifen, range() und Listen-Comprehensions
pizzas = ['pepperoni', 'margherita', 'hawaiian']
tiere = ['hund', 'katze', 'papagei']
zahlen = [1, 2, 3, 4, 5]
Wiederhole eine Aktion für jedes Element in einer Liste
pizzas = ['pepperoni', 'margherita', 'hawaiian']
for pizza in pizzas:
print(pizza)
# Ausgabe:
# pepperoni
# margherita
# hawaiian
Syntax: for element in liste:
pizzas = ['pepperoni', 'margherita', 'hawaiian']
for pizza in pizzas:
print(f"Ich mag {pizza}-Pizza.")
print("Ich liebe Pizza wirklich sehr!")
Ausgabe:
Ich mag pepperoni-Pizza.
Ich mag margherita-Pizza.
Ich mag hawaiian-Pizza.
Ich liebe Pizza wirklich sehr!
→ kapitel_4_aufgaben_4-1_4-2.ipynb
↓ Lösungen
pizzas = ['pepperoni', 'margherita', 'hawaiian']
for pizza in pizzas:
print(pizza)
for pizza in pizzas:
print(f"Ich mag {pizza}-Pizza.")
print("Ich liebe Pizza wirklich sehr!")
Ausgabe:
pepperoni
margherita
hawaiian
Ich mag pepperoni-Pizza.
Ich mag margherita-Pizza.
Ich mag hawaiian-Pizza.
Ich liebe Pizza wirklich sehr!
tiere = ['hund', 'katze', 'papagei']
for tier in tiere:
print(tier)
for tier in tiere:
print(f"Ein {tier} wäre ein tolles Haustier.")
print("Jedes dieser Tiere wäre ein tolles Haustier!")
Ausgabe:
hund
katze
papagei
Ein hund wäre ein tolles Haustier.
Ein katze wäre ein tolles Haustier.
Ein papagei wäre ein tolles Haustier.
Jedes dieser Tiere wäre ein tolles Haustier!
Erstellt eine Sequenz von Zahlen
# Zahlen von 1 bis 5
for wert in range(1, 6):
print(wert)
# Ausgabe: 1, 2, 3, 4, 5
# Zahlen von 0 bis 4
for wert in range(5):
print(wert)
# Ausgabe: 0, 1, 2, 3, 4
# Gerade Zahlen von 2 bis 10
gerade_zahlen = list(range(2, 11, 2))
print(gerade_zahlen) # [2, 4, 6, 8, 10]
# Ungerade Zahlen von 1 bis 10
ungerade_zahlen = list(range(1, 11, 2))
print(ungerade_zahlen) # [1, 3, 5, 7, 9]
# Vielfache von 3
vielfache = list(range(3, 31, 3))
print(vielfache) # [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
# Liste der Zahlen 1 bis 10
zahlen = list(range(1, 11))
print(zahlen)
# Kubikzahlen
kubikzahlen = []
for wert in range(1, 11):
kubik = wert ** 3
kubikzahlen.append(kubik)
print(kubikzahlen)
# [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
→ kapitel_4_aufgaben_4-3_4-9.ipynb
↓ Lösungen
# 4-3: Bis 20 zählen
for wert in range(1, 21):
print(wert)
Ausgabe:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 4-4: Eine Million
zahlen = list(range(1, 1000001))
for zahl in zahlen:
print(zahl) # Strg+C zum Abbrechen
Ausgabe:
1
2
3
... (würde bis 1000000 zählen)
# 4-5: Statistiken
zahlen = list(range(1, 1000001))
print(f"Min: {min(zahlen)}")
print(f"Max: {max(zahlen)}")
print(f"Sum: {sum(zahlen)}")
Ausgabe:
Min: 1
Max: 1000000
Sum: 500000500000
# 4-6: Ungerade Zahlen
for wert in range(1, 21, 2):
print(wert)
Ausgabe:
1
3
5
7
9
11
13
15
17
19
# 4-7: Vielfache von 3
for wert in range(3, 31, 3):
print(wert)
Ausgabe:
3
6
9
12
15
18
21
24
27
30
# 4-8: Kubikzahlen
for wert in range(1, 11):
print(wert**3)
Ausgabe:
1
8
27
64
125
216
343
512
729
1000
# 4-9: List Comprehension
kubik = [wert**3 for wert in range(1, 11)]
print(kubik)
Ausgabe:
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
zahlen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(f"Minimum: {min(zahlen)}") # 1
print(f"Maximum: {max(zahlen)}") # 10
print(f"Summe: {sum(zahlen)}") # 55
# Mit einer Million Zahlen
million = list(range(1, 1000001))
print(f"Min: {min(million)}") # 1
print(f"Max: {max(million)}") # 1000000
print(f"Summe: {sum(million)}") # 500000500000
Kompakte Syntax zum Erstellen von Listen
# Traditionelle Methode
quadrate = []
for wert in range(1, 11):
quadrate.append(wert**2)
# List Comprehension
quadrate = [wert**2 for wert in range(1, 11)]
print(quadrate)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# Kubikzahlen
kubikzahlen = [wert**3 for wert in range(1, 11)]
Teile einer Liste extrahieren
spieler = ['charles', 'martina', 'michael', 'florence', 'eli']
print(spieler[0:3]) # ['charles', 'martina', 'michael']
print(spieler[1:4]) # ['martina', 'michael', 'florence']
print(spieler[:4]) # ['charles', 'martina', 'michael', 'florence']
print(spieler[2:]) # ['michael', 'florence', 'eli']
print(spieler[-3:]) # ['michael', 'florence', 'eli']
spieler = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Die ersten drei Spieler sind:")
for name in spieler[:3]:
print(name.title())
print("\nDie letzten drei Spieler sind:")
for name in spieler[-3:]:
print(name.title())
# Falsch - Verweis auf dieselbe Liste
meine_speisen = ['pizza', 'falafel', 'kuchen']
freund_speisen = meine_speisen # Nur Verweis!
# Richtig - Echte Kopie
meine_speisen = ['pizza', 'falafel', 'kuchen']
freund_speisen = meine_speisen[:] # Kopie durch Slice
meine_speisen.append('cannoli')
freund_speisen.append('eis')
print("Meine Speisen:", meine_speisen)
print("Freund Speisen:", freund_speisen)
→ kapitel_4_aufgaben_4-10_4-12.ipynb
↓ Lösungen
spieler = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Die ersten drei Elemente der Liste sind:")
print(spieler[:3])
print("Drei Elemente aus der Mitte der Liste sind:")
print(spieler[1:4])
print("Die letzten drei Elemente der Liste sind:")
print(spieler[-3:])
Ausgabe:
Die ersten drei Elemente der Liste sind:
['charles', 'martina', 'michael']
Drei Elemente aus der Mitte der Liste sind:
['martina', 'michael', 'florence']
Die letzten drei Elemente der Liste sind:
['michael', 'florence', 'eli']
# 4-11: Meine Pizza, deine Pizza
pizzas = ['pepperoni', 'margherita', 'hawaiian']
friend_pizzas = pizzas[:] # echte Kopie, kein Verweis!
pizzas.append('meat lovers')
friend_pizzas.append('vegetarisch')
print("Meine Pizzas:", pizzas)
print("Pizzas meines Freundes:", friend_pizzas)
Ausgabe:
Meine Pizzas: ['pepperoni', 'margherita', 'hawaiian', 'meat lovers']
Pizzas meines Freundes: ['pepperoni', 'margherita', 'hawaiian', 'vegetarisch']
# 4-12: For-Schleifen
print("Meine Lieblingspizzas sind:")
for pizza in pizzas:
print(pizza)
print("Die Lieblingspizzas meines Freundes sind:")
for pizza in friend_pizzas:
print(pizza)
Ausgabe:
Meine Lieblingspizzas sind:
pepperoni
margherita
hawaiian
meat lovers
Die Lieblingspizzas meines Freundes sind:
pepperoni
margherita
hawaiian
vegetarisch
Unveränderliche Listen — mit runden Klammern ()
# Tupel definieren
dimensionen = (200, 50)
print(dimensionen[0]) # 200
print(dimensionen[1]) # 50
# Fehler - Tupel sind unveränderlich
# dimensionen[0] = 250 # TypeError!
# Tupel durchlaufen
for dimension in dimensionen:
print(dimension)
# Ursprüngliches Tupel
dimensionen = (200, 50)
print("Ursprüngliche Dimensionen:")
for dimension in dimensionen:
print(dimension)
# Tupel komplett überschreiben
dimensionen = (400, 100)
print("\nGeänderte Dimensionen:")
for dimension in dimensionen:
print(dimension)
→ kapitel_4_aufgaben_4-13.ipynb
↓ Lösungen
# Ursprüngliches Büffet
buffet = ('pizza', 'salat', 'suppe', 'pasta', 'brot')
for gericht in buffet:
print(gericht)
# Versuch zu ändern (Fehler!)
# buffet[0] = 'hamburger' # TypeError!
# Neues Büffet
buffet = ('hamburger', 'salat', 'curry', 'pasta', 'reis')
print("Neues Büffet:")
for gericht in buffet:
print(gericht)
Ausgabe:
pizza
salat
suppe
pasta
brot
Neues Büffet:
hamburger
salat
curry
pasta
reis
# Gut
for pizza in pizzas:
print(f"I like {pizza} pizza.")
# Schlecht (zu viele Leerzeilen)
for pizza in pizzas:
print(f"I like {pizza} pizza.")
# Guter Stil
meine_liste = [1, 2, 3, 4, 5]
for nummer in meine_liste:
if nummer % 2 == 0:
print(f"{nummer} ist gerade")
# Schlechter Stil
meineListeMitEinemSehrLangenNamen=[1,2,3,4,5]
for x in meineListeMitEinemSehrLangenNamen:
if x%2==0:
print(f"{x} ist gerade")
URL: https://peps.python.org/pep-0008/
→ kapitel_4_aufgaben_4-14_4-15.ipynb
↓ Lösungen
# 4-14: PEP 8 durchlesen
# https://peps.python.org/pep-0008/
print("PEP 8 gelesen und verstanden!")
Ausgabe:
PEP 8 gelesen und verstanden!
# Vorher (schlecht)
pizzas=['pepperoni','margherita','hawaiian']
for x in pizzas:
print(f"Ich mag {x}-Pizza.")
print("Ich liebe Pizza wirklich sehr!")
# Nachher (gut - PEP 8)
pizzas = ['pepperoni', 'margherita', 'hawaiian']
for pizza in pizzas:
print(f"Ich mag {pizza}-Pizza.")
print("Ich liebe Pizza wirklich sehr!")
Ausgabe:
Ich mag pepperoni-Pizza.
Ich mag margherita-Pizza.
Ich mag hawaiian-Pizza.
Ich liebe Pizza wirklich sehr!
Ich mag pepperoni-Pizza.
Ich mag margherita-Pizza.
Ich mag hawaiian-Pizza.
Ich liebe Pizza wirklich sehr!
neue_liste = alte_liste[:]for item in items# Gute Praxis
for pizza in pizzas:
print(f"I love {pizza}!")
zahlen = [x**2 for x in range(10)]