Coding for KidsCoding for Kids
Creatieve LevelsUitdagingenLerarengids
Stem op functies
Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau

Geavanceerde Functies
Functies met variabele argumenten

Doelstelling

Pak alle verbruiksartikelen in het pakhuis en verpak ze in opslagcontainers met behulp van variant argument functies.

Er bevinden zich verschillende voedingsmiddelen in een pakhuis die verpakt moeten worden om verzonden te worden voor verkoop. Om dit efficiënt te doen, kun je aangepaste functies maken met een variabel aantal argumenten. Dit zijn functies die geen vast aantal argumenten hebben en je in staat stellen zoveel argumenten op te geven als nodig is om de handelingen van de functie uit te voeren.

Er zijn twee (2) manieren om een variabel aantal argumenten aan een functie toe te voegen, afhankelijk van wat je wilt bereiken. De eerste methode is het maken van een argumentenlijst. In plaats van verschillende argumentnamen te gebruiken, plaats je een asterisk voor een enkel argument. Dit maakt automatisch een lijst aan.

def custom_function(message,*arguments): player.speak(message) return(arguments) value = custom_function("lalala","one","two","three") # The message "lalala" is printed on screen # Value now returns the list ("one","two","three")

De tweede methode is het plaatsen van de argumenten in een dictionary in plaats van in een lijst. Dit doe je op dezelfde manier als in de vorige methode, maar in plaats van één asterisk plaats je er twee. Dit maakt automatisch een dictionary aan in plaats van een lijst.

def custom_function(message,**arguments): player.speak(message) return(arguments) value = custom_function("lalala", one = 1, two = 2, three = 3) # The message "lalala" is printed on screen # Value now returns the dictionary: # {'one': 1, 'three': 3, 'two': 2}

Om alle items voor verzending te verpakken, maak je twee sets aangepaste functies, één voor het verpakken van losse items en één voor het samen verpakken van meerdere items. Gebruik de variabele argumenten om verschillende items samen te verpakken zonder dat je te veel functies hoeft te maken.

def pack_singles(name,*items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items) def pack_multi(name,**items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items)

Er zijn vier (4) verschillende soorten items op het terrein: "jars" , "eggs" , "berries" en "fruit". Verzamel alle items in het pakhuis en loop naar de X-markeringen op de verzendbaan. Loop naar de donkere X-markeringen en gebruik de pack_singles functies om de "jars" en "eggs" te verpakken.

Voor de "jars" verzamel je vier (4) soorten, die als argumenten worden ingevoerd, namelijk "white", "purple", "red" en "brown". Deze moeten worden opgeslagen in de container bij het groene tapijt. De code wordt als volgt geschreven: pack_singles("jars", "white", "purple", "red", "brown")

Voor de "eggs" verzamel je drie (3) soorten, die als argumenten worden ingevoerd, namelijk "white", "green", en "blue". Deze moeten worden opgeslagen in de container bij het oranje tapijt. Hetzelfde formaat wordt gebruikt als in de vorige opzet.

Vervolgens loop je naar de lichte X-markeringen en gebruik je de pack_multi functie om de "berries" en "fruit" te verpakken. Voor de "berries" verzamel je drie (3) soorten, die als argumenten worden ingevoerd, namelijk "red", "blue", en "purple". Deze moeten worden opgeslagen in de container bij het blauwe tapijt. Je moet ook de hoeveelheden toevoegen die je van elk verzamelt, bijvoorbeeld: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

Voor de "fruit" verzamel je vier (4) soorten, die als argumenten worden ingevoerd, namelijk "apple", "pear", "orange", en "peach". Deze moeten worden opgeslagen in de container bij het rode tapijt. Gebruik hetzelfde formaat als in de vorige invoer, en zorg ervoor dat alle items verzameld en opgeslagen worden om het level te voltooien.

Codeboek