Je hebt zojuist geleerd hoe je een for-lus in een functie kan gebruiken met een gegeven lijst. In deze oefening zal je dat toepassen. Je kan de uitleg hieronder nog eens bekijken als je dat wil.

Uitleg over een for-lus in een functie met een gegeven lijst

Je hebt net geleerd hoe we een lijst die we eerder hebben aangemaakt in een for-lus kunnen gebruiken. Je kan dit hieronder nog eens bekijken.

Herhaling informatie over een for-lus met een opgeslagen lijst
steden = ["Brussel", "Gent", "Antwerpen"]

for stad in steden:
    print(stad)

Wat gebeurt hier?

  • De lijst ["Brussel", "Gent", "Antwerpen"] wordt opgeslagen in de variabele steden.
  • De for-lus begint met de lijst die is opgeslagen in steden.
  • In het begin krijgt stad de waarde "Brussel".
  • De code binnen de lus, , wordt uitgevoerd, waardoor Brussel op het scherm wordt afgedrukt.
  • Daarna krijgt stad de volgende waarde, namelijk "Gent".
  • De code binnen de lus, , wordt uitgevoerd, waardoor Gent op het scherm wordt afgedrukt.
  • Vervolgens krijgt stad de volgende waarde, namelijk "Antwerpen".
  • De code binnen de lus, , wordt uitgevoerd, waardoor Antwerpen op het scherm wordt afgedrukt.
  • Nu zijn er geen namen meer in de lijst die we hadden gegeven, dus stopt de lus.

Op het scherm zie je dus verschijnen:

Brussel
Gent
Antwerpen

Je hebt ook al eerder geleerd hoe je een functie kan maken in Python. Hieronder staat nog eens een voorbeeld.

Voorbeeld simpele functie met twee inputs
def Optellen(a, b):
    resultaat = a + b
    return resultaat

Hierbij kan een gebruiker jouw functie gebruiken door een waarde voor a en b in te geven. Zo zullen ze bij de invoer als antwoord 5 terugkrijgen.

Je hebt ook gezien hoe je een for-lus binnen een functie kan gebruiken. Hieronder staat nog eens een voorbeeld.

Voorbeeld functie met een for-lus en een print-opdracht

Deze functie, genaamd zal steeds één getal als invoer nemen. Vervolgens drukt het op het scherm exact zo vaak de zin Hallo wereld! af. Hier is die functie:

def BegroetVaak(aantal_keer):
    for i in range(aantal_keer):
        print("Hallo wereld!")

Wanneer iemand deze functie gebruikt, kan die zelf kiezen welke waarde voor aantal_keer die als invoer geeft. Als iemand bijvoorbeeld 3 als invoer geeft door te typen, dan krijgt die het volgende op het scherm te zien:

Hallo wereld!
Hallo wereld!
Hallo wereld!

Zo ook krijgt iemand die typt het volgende op het scherm te zien:

Hallo wereld!
Hallo wereld!
Hallo wereld!
Hallo wereld!
Hallo wereld!
Hallo wereld!
Hallo wereld!



We zullen nu de concepten combineren om een functie te maken waarin we een for-lus gebruiken met een gegeven lijst. Je geeft net zoals bij alle functies die je eerder hebt gezien de invoer (in dit geval een lijst) een naam, en binnen de functie kan je die naam gebruiken om naar de lijst te verwijzen. Vervolgens kan je een for-lus gebruiken om door elk element van die lijst te gaan en er iets mee te doen (zoals het afdrukken op het scherm).

Als je bijvoorbeeld een functie maakt die alle elementen van een lijst afdrukt, kan dat er zo uitzien:

def PrintAllesInDeLijst(de_lijst):
    for element in de_lijst:
        print(element)

Hierbij is de_lijst de naam die we hebben gegeven aan de invoerlijst van de functie. In de for-lus gebruiken we deze naam om door elk element van de lijst te gaan en het af te drukken met .

Als iemand deze functie aanroept met een lijst, zoals , dan zal het volgende op het scherm verschijnen:

appels
broccoli
citroenen
druiven



We zullen nu zien dat we in de functie ook nog een if-constructie kunnen gebruiken binnen de for-lus om bepaalde acties uit te voeren op basis van de waarden in de lijst. Bijvoorbeeld, we kunnen een functie maken die van de gegeven lijst alleen de getallen afdrukt die groter zijn dan 5:

def PrintGroterDan5(getallen):
    for getal in getallen:
        if getal > 5:
            print(f"{getal} is groter dan 5.")

Merk op dat er géén elif of else is in deze if-constructie. Dit betekent dat als het getal niet groter is dan 5, er niets gebeurt en de lus gewoon doorgaat naar het volgende getal in de lijst.

Als iemand deze functie aanroept met een lijst zoals , dan zal het volgende op het scherm verschijnen:

7 is groter dan 5.
9 is groter dan 5.

Waarom?

Bekijk elke stap in detail
  • De functie wordt aangeroepen met de lijst [3, 7, 2, 9, 4].
  • De for-lus begint en getal neemt de waarde van het eerste getal uit de lijst, namelijk 3.
  • De if-constructie controleert of 3 > 5. Dit is niet waar, dus er gebeurt niets en de lus gaat verder naar het volgende getal.
  • Het volgende getal is 7. De if-constructie controleert of 7 > 5. Dit is waar, dus de code binnen de if-constructie wordt uitgevoerd en op het scherm verschijnt: 7 is groter dan 5..
  • De lus gaat verder naar het volgende getal, namelijk 2. De if-constructie controleert of 2 > 5. Dit is niet waar, dus er gebeurt niets en de lus gaat verder.
  • Het volgende getal is 9. De if-constructie controleert of 9 > 5. Dit is waar, dus de code binnen de if-constructie wordt uitgevoerd en op het scherm verschijnt: 9 is groter dan 5..
  • Het laatste getal is 4. De if-constructie controleert of 4 > 5. Dit is niet waar, dus er gebeurt niets.
  • Nu zijn er geen getallen meer in de lijst, dus stopt de lus.



Opdracht

Maak een functie genaamd die een lijst als invoer neemt. Deze lijst bevat getallen. De functie moet elk getal in de lijst controleren en alleen die getallen afdrukken die groter zijn dan 5. Voor elk getal dat groter is dan 5, moet de functie op het scherm afdrukken: [getal] is groter dan 5., waarbij [getal] vervangen wordt door het daadwerkelijke getal uit de lijst.

input-output verwachtingen
Invoer Verwachte output
7 is groter dan 5.
9 is groter dan 5.
6 is groter dan 5.
42 is groter dan 5.
28 is groter dan 5.
8 is groter dan 5.
16 is groter dan 5.
32 is groter dan 5.

(Er is geen output.)