Python for-loop
T. Issaris
18 Januari 2021
For-loop
Herhalen van code
De for-lus, wordt 1 maal per element in de lijst uitgevoerd.
for getal in [0, 1, 2, 3]:
print("Hallo")
for naam in ["Andreas", "Zarah", "Alexander"]:
print("Hallo")
For-loop
We kunnen gebruik maken van range() om zo’n lijst getallen automatisch aan te maken:
for i in range(4):
print("Hallo")
For-loop
De variabele “i” neemt telkens de volgende waarde uit de lijst aan.
for i in range(4):
print(i)
for naam in ["Andreas", "Zarah", "Alexander"]:
print(f"Hallo {naam}")
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">')