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">')
// reveal.js plugins