Python for-loop
T. Issaris
17 September 2021
Herhalen van code
for getal in [0, 1, 2, 3]:
print("Hallo")
Hier wordt de print functie 4 maal uitgevoerd, en dus “Hallo” 4 keer getoond.
Herhalen van code
De for-lus, wordt namelijk 1 keer per element in de opgegeven lijst uitgevoerd.
for getal in [0, 1, 2, 3, 4]:
print("Hallo")
In dit geval dus 5 keer.
Herhalen van code
De lijst hoeft niet uit getallen te bestaan maar mag ook uit strings bestaan:
for naam in ["Andreas", "Zarah", "Alexander"]:
print("Hallo")
Hier wordt “Hallo” 3 keer getoond omdat er 3 strings in de lijst staan.
Variabele in for-loop
De variabele “i” neemt telkens de volgende waarde uit de lijst aan.
for naam in ["Andreas", "Zarah", "Alexander"]:
print(naam)
Hier worden achtereenvolgens de namen Andreas, Zarah en Alexander getoond.
Equivalent
for naam in ["Andreas", "Zarah", "Alexander"]:
print(naam)
naam = "Andreas"
print(naam)
naam = "Zarah"
print(naam)
naam = "Alexander"
print(naam)
Equivalent
for i in [1, 7]:
print(i)
i = 1
print(i)
i = 7
print(i)
Range()
Automatisch lijsten maken
range(aantal)
We kunnen gebruik maken van range() om zo’n lijst getallen automatisch aan te maken:
De getallen: 0,1,2,3
range(aantal)
Deze lijst kunnen we gebruiken in onze for-loop:
for i in range(4):
print("Hallo")
range(x)
Ook hier neemt de variabele “i” telkens de volgende waarde uit de “lijst” aan.
for i in range(4):
print(i)
range(start, stop)
Je kan ook een start- en stopwaarde opgeven:
for i in range(100, 104):
print(i)
Dit geeft de getallen: 100, 101, 102, 103
Dubbele for-loop
In een for-loop mag je alle code gebruiken, dus ook een andere for-loop. Dit noemt men een geneste of dubbele for-loop:
for i in range(4):
for naam in ["Andreas", "Zarah", "Alexander"]:
print(f"{i} Hallo {naam}")
SVG Bestanden
Hoe kunnen we nu meerdere rechthoeken tekenen?
For-loop
Met behulp van een for-loop kunnen we in Python een bepaald stuk code meermaals uitvoeren:
for i in [0, 1, 2]:
bestand.write('<rect x="0">')
Python voert de code voor elk element in de lijst 1 keer uit.
For-loop
De waarde in de lijst wordt in de variabele “i” opgeslagen, en we kunnen deze dan ook gebruiken:
for i in [0, 1, 2]:
bestand.write(f'<rect x="{i}">')
For-loop
De lijst mag ook buiten de for-lus gedefinieerd worden:
getallen = [0, 1, 2]
for i in getallen:
bestand.write(f'<rect x="{i}">')
For-loop
Je kan uiteraard ook eerst nog berekeningen uitvoeren voordat je de uiteindelijke waarde gebruikt:
getallen = [0, 1, 2]
for i in getallen:
x = i * 10
bestand.write(f'<rect x="{x}">')
For-loop
De lijst mag complexer zijn (een geneste lijst):
info = [
[0, "A"],
[1, "B"],
[2, "C"],
]
for i in info:
bestand.write(f'<rect x="{i}">')
Maar let op: <rect x=“[0, "A"]”>
For-loop
Dus, kan je indexatie gebruiken om de elementen uit de lijst te gebruiken:
info = [
[0, "A"],
[1, "B"],
[2, "C"],
]
for i in info:
x = i[0]
y = i[1]
bestand.write(f'<rect x="{x}" y="{y}">')
For-loop
Of, je kan Python ook vragen om de elementen uit de lijst als afzonderlijke variabelen op te slaan:
info = [
[0, "A"],
[1, "B"],
[2, "C"],
]
for i, j in info:
bestand.write(f'<rect x="{i}" y="{j}">')
For-loop
Of andere informatie bevatten, zoals informatie over smartphones:
phones = [
[2007, 2.0, "apple"],
[2008, 3.0, "apple"],
[2010, 5.0, "samsung"],
]
for i, j, k in phones:
bestand.write(f'<rect x="{i}" y="{j}">')
For-loop
Je kan ook if-condities gebruiken in de for-lus:
phones = [
[2007, 2.0, "apple"],
[2008, 3.0, "apple"],
[2010, 5.0, "samsung"],
]
for i, j, k in phones:
if k == "apple":
kleur = "red"
else:
kleur = "blue"
bestand.write(f'<rect x="{i}" y="{j}" fill="{kleur}">')
For-loop
Als de waardes in de lijst niet goed uitkomen voor je SVG, kan je er ook eerst berekenen op uitvoeren:
phones = [
[2007, 2.0, "apple"],
[2008, 3.0, "apple"],
[2010, 5.0, "samsung"],
]
for i, j, k in phones:
x = i / 100
y = j * 10
bestand.write(f'<rect x="{x}" y="{y}" fill="red">')