Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer For-loops | Lussen
Introductie tot Python

Veeg om het menu te tonen

book
For-loops

Welkom bij de sectie gewijd aan loops!

In dit hoofdstuk gaan we dieper in op hoe loops een belangrijk hulpmiddel zijn voor het automatiseren van repetitieve taken en essentieel zijn voor het efficiënt verwerken van lijsten en andere iterabele gegevenstypen.

Volg Alex terwijl hij het gebruik van for-loops demonstreert om bewerkingen in onze supermarkt te vereenvoudigen:

Het gebruik van for-loops in Python stelt je in staat om een codeblok herhaaldelijk uit te voeren voor elk item in een collectie (iterabel object). Dit is wat je moet weten over for-loops:

Syntax

Start een for-loop met het sleutelwoord for, gevolgd door een variabelenaam zoals item om elk element in de reeks te vertegenwoordigen. Daarna volgt het sleutelwoord in en vervolgens het iterabele object, zoals groceryItems. Het codeblok binnen de loop wordt één keer uitgevoerd voor elk element.

In dit voorbeeld fungeert item als de iteratorvariabele die elk element in de lijst groceryItems achtereenvolgens benadert en de functie print() voor elk element uitvoert:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteratie verwijst naar het proces van herhaaldelijk uitvoeren van een codeblok. Python ondersteunt twee hoofdtypen iteratie:

Definiete iteratie

Waarbij het aantal iteraties vooraf bekend is. for-lussen zijn hiervan een klassiek voorbeeld en stoppen automatisch wanneer het einde van de reeks is bereikt.

Indefiniete iteratie

Waarbij de uitvoering doorgaat totdat aan een specifieke voorwaarde is voldaan, meestal afgehandeld door while-lussen, die in het volgende hoofdstuk uitgebreid worden behandeld.

Voorbeeldtoepassingen

for-lussen in Python kunnen worden gebruikt met elke iterabele (lists, tuples, dictionaries, strings), waardoor gegevens per element kunnen worden gemanipuleerd.

Of je nu items in een lijst, sleutels of waarden in een woordenboek, of tekens in een string wilt benaderen, for-lussen bieden een duidelijke syntaxis die code vereenvoudigt voor repetitieve taken.

Hier zie je hoe je een for-lus kunt gebruiken om over de elementen in een string en een tuple te itereren, vergelijkbaar met wat we bij lijsten hebben gezien:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Bij gebruik van een for-lus met een dictionary, worden standaard de sleutels van de dictionary doorlopen.

Dit is wat er gebeurt wanneer direct over een dictionary wordt geïtereerd:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Merk op dat de iteratorvariabele product alleen toegang heeft tot de sleutels van het woordenboek.

Om over de waarden van een woordenboek te itereren, kun je de methode values() gebruiken.

Dit is handig voor bewerkingen waarbij alleen toegang tot de waarden nodig is, zonder verwijzing naar de sleutels:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Als je sleutels en waarden tegelijkertijd wilt benaderen, kun je met de methode items() door sleutel-waardeparen in een woordenboek itereren.

Om deze methode in een for-lus te gebruiken, geef je twee variabelen op vóór het in-trefwoord — één voor de sleutel (product) en één voor de waarde (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Opmerking

In dit voorbeeld gebruiken we f-strings (ook wel geformatteerde string-literals genoemd) om variabelen direct in strings te plaatsen. De syntaxis is eenvoudig: voeg een f toe vóór het openingsaanhalingsteken " en plaats variabelen of expressies tussen accolades {} binnen de string. Deze methode maakt het combineren van strings en variabelen in printopdrachten veel leesbaarder, dus het is de moeite waard om te leren.

Op basis van kennis van if/else, booleaanse operatoren en for-lussen kan een eenvoudige voorraadcontrole op een woordenboek worden uitgevoerd:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Opmerking

Je merkt misschien dat we if-statements binnen de for-lus hebben geplaatst, wat extra inspringing aan het if-blok toevoegde. Zoals eerder vermeld, kan elk ingesprongen codeblok als onafhankelijk worden beschouwd, ongeacht waar het zich bevindt. Het belangrijkste is dat de inspringing consistent en correct is tussen de blokken.

Taak

Swipe to start coding

Beheer voorraad en promoties in een supermarkt door te itereren over de inventaris, restock-voorwaarden te controleren en promoties toe te passen.

  • Loop door elk product in de inventory-dictionary.
  • Haal binnen de loop de current_stock en min_stock uit de inventarislijst.
  • Gebruik een if-statement om te controleren of de huidige voorraad kleiner dan of gelijk aan de minimale voorraad is:
    • Indien ja, print een restock-melding, verhoog de voorraad met 20, werk de inventaris bij en print de update-melding.
  • Gebruik een andere if-statement om te controleren of het product voorkomt in de promotions-dictionary.

Uitvoervereisten

Print voor elk item:

  • --- Processing: <item> ---

  • Indien restocking nodig is:
    <item> moet worden bijgevuld. Huidige voorraad: <current_stock>. Minimum vereist: <min_stock>

    Bijgewerkte voorraad voor <item>: <updated_stock>

  • Indien promotie aanwezig is:
    Promotie voor <item>: <promotion_details>

  • Zo niet:
    Geen promoties voor <item>

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 1
Onze excuses dat er iets mis is gegaan. Wat is er gebeurd?

Vraag AI

expand
ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

book
For-loops

Welkom bij de sectie gewijd aan loops!

In dit hoofdstuk gaan we dieper in op hoe loops een belangrijk hulpmiddel zijn voor het automatiseren van repetitieve taken en essentieel zijn voor het efficiënt verwerken van lijsten en andere iterabele gegevenstypen.

Volg Alex terwijl hij het gebruik van for-loops demonstreert om bewerkingen in onze supermarkt te vereenvoudigen:

Het gebruik van for-loops in Python stelt je in staat om een codeblok herhaaldelijk uit te voeren voor elk item in een collectie (iterabel object). Dit is wat je moet weten over for-loops:

Syntax

Start een for-loop met het sleutelwoord for, gevolgd door een variabelenaam zoals item om elk element in de reeks te vertegenwoordigen. Daarna volgt het sleutelwoord in en vervolgens het iterabele object, zoals groceryItems. Het codeblok binnen de loop wordt één keer uitgevoerd voor elk element.

In dit voorbeeld fungeert item als de iteratorvariabele die elk element in de lijst groceryItems achtereenvolgens benadert en de functie print() voor elk element uitvoert:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteratie verwijst naar het proces van herhaaldelijk uitvoeren van een codeblok. Python ondersteunt twee hoofdtypen iteratie:

Definiete iteratie

Waarbij het aantal iteraties vooraf bekend is. for-lussen zijn hiervan een klassiek voorbeeld en stoppen automatisch wanneer het einde van de reeks is bereikt.

Indefiniete iteratie

Waarbij de uitvoering doorgaat totdat aan een specifieke voorwaarde is voldaan, meestal afgehandeld door while-lussen, die in het volgende hoofdstuk uitgebreid worden behandeld.

Voorbeeldtoepassingen

for-lussen in Python kunnen worden gebruikt met elke iterabele (lists, tuples, dictionaries, strings), waardoor gegevens per element kunnen worden gemanipuleerd.

Of je nu items in een lijst, sleutels of waarden in een woordenboek, of tekens in een string wilt benaderen, for-lussen bieden een duidelijke syntaxis die code vereenvoudigt voor repetitieve taken.

Hier zie je hoe je een for-lus kunt gebruiken om over de elementen in een string en een tuple te itereren, vergelijkbaar met wat we bij lijsten hebben gezien:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Bij gebruik van een for-lus met een dictionary, worden standaard de sleutels van de dictionary doorlopen.

Dit is wat er gebeurt wanneer direct over een dictionary wordt geïtereerd:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Merk op dat de iteratorvariabele product alleen toegang heeft tot de sleutels van het woordenboek.

Om over de waarden van een woordenboek te itereren, kun je de methode values() gebruiken.

Dit is handig voor bewerkingen waarbij alleen toegang tot de waarden nodig is, zonder verwijzing naar de sleutels:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Als je sleutels en waarden tegelijkertijd wilt benaderen, kun je met de methode items() door sleutel-waardeparen in een woordenboek itereren.

Om deze methode in een for-lus te gebruiken, geef je twee variabelen op vóór het in-trefwoord — één voor de sleutel (product) en één voor de waarde (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Opmerking

In dit voorbeeld gebruiken we f-strings (ook wel geformatteerde string-literals genoemd) om variabelen direct in strings te plaatsen. De syntaxis is eenvoudig: voeg een f toe vóór het openingsaanhalingsteken " en plaats variabelen of expressies tussen accolades {} binnen de string. Deze methode maakt het combineren van strings en variabelen in printopdrachten veel leesbaarder, dus het is de moeite waard om te leren.

Op basis van kennis van if/else, booleaanse operatoren en for-lussen kan een eenvoudige voorraadcontrole op een woordenboek worden uitgevoerd:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Opmerking

Je merkt misschien dat we if-statements binnen de for-lus hebben geplaatst, wat extra inspringing aan het if-blok toevoegde. Zoals eerder vermeld, kan elk ingesprongen codeblok als onafhankelijk worden beschouwd, ongeacht waar het zich bevindt. Het belangrijkste is dat de inspringing consistent en correct is tussen de blokken.

Taak

Swipe to start coding

Beheer voorraad en promoties in een supermarkt door te itereren over de inventaris, restock-voorwaarden te controleren en promoties toe te passen.

  • Loop door elk product in de inventory-dictionary.
  • Haal binnen de loop de current_stock en min_stock uit de inventarislijst.
  • Gebruik een if-statement om te controleren of de huidige voorraad kleiner dan of gelijk aan de minimale voorraad is:
    • Indien ja, print een restock-melding, verhoog de voorraad met 20, werk de inventaris bij en print de update-melding.
  • Gebruik een andere if-statement om te controleren of het product voorkomt in de promotions-dictionary.

Uitvoervereisten

Print voor elk item:

  • --- Processing: <item> ---

  • Indien restocking nodig is:
    <item> moet worden bijgevuld. Huidige voorraad: <current_stock>. Minimum vereist: <min_stock>

    Bijgewerkte voorraad voor <item>: <updated_stock>

  • Indien promotie aanwezig is:
    Promotie voor <item>: <promotion_details>

  • Zo niet:
    Geen promoties voor <item>

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 1
Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Onze excuses dat er iets mis is gegaan. Wat is er gebeurd?
some-alt