Coding for KidsCoding for Kids
Kreative NiveauerUdfordringerLærervejledning
Stem på funktioner
Avanceret Python Udviklingskursus
Kapitel
>
Niveau

Avancerede Funktioner
Funktioner med variabelt antal argumenter

Mål

Hent alle de forbrugebare varer inde i lageret og pak dem i opbevaringsbeholdere ved at bruge funktionsvarianter med variable argumenter.

Der er adskillige madvarer placeret inde i et lager, som skal pakkes, for at de kan sendes ud for at blive solgt. For at gøre dette effektivt, kan du oprette tilpassede funktioner med et variabelt antal argumenter. Dette er funktioner, der ikke har et fast antal argumenter og tillader dig at angive så mange argumenter, som du behøver for at udføre funktionens handlinger.

Der er to (2) måder at tilføje et variabelt antal argumenter til en funktion, afhængigt af hvad du prøver at opnå. Den første metode er at oprette en argumentliste; i stedet for at angive forskellige argumentnavne sætter du en stjerne (*) foran ét argument. Dette opretter automatisk en liste.

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")

Den anden metode går ud på at placere argumenterne i en ordbog i stedet for i en liste. Dette gøres på samme måde som i den forrige metode, men i stedet for at sætte én stjerne, sætter du to. Dette opretter automatisk en ordbog i stedet for en liste.

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}

For at pakke alle varerne til forsendelse, skal du oprette to sæt tilpassede funktioner: én til at pakke enkeltvarer og én til at pakke flere varer sammen. Brug de variable argumenter til at samle de forskellige varer, så du ikke behøver at oprette for mange funktioner.

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)

Der er fire (4) forskellige typer varer på marken: "jars", "eggs", "berries" og "fruit". Saml alle varer i lageret og gå mod X-mærkerne på fragtbanen. Gå til de mørke X-mærker og brug pack_singles funktionerne til at pakke "jars" og "eggs".

For "jars" er der fire (4) typer, du samler, og de angives som argumenter, nemlig: "white", "purple", "red" og "brown". Disse skal opbevares i beholderen ved det grønne tæppe. Koden skrives således: pack_singles("jars", "white", "purple", "red", "brown")

For "eggs" er der tre (3) typer, du samler, og de angives som argumenter, nemlig: "white", "green" og "blue". Disse skal opbevares i beholderen ved det orange tæppe. Det samme format anvendes som i den forrige opsætning.

Derefter går du til de lyse X-mærker og bruger pack_multi funktionen til at pakke "berries" og "fruit". For "berries" er der tre (3) typer, du samler, og de angives som argumenter, nemlig: "red", "blue" og "purple". Disse skal opbevares i beholderen ved det blå tæppe. Du skal tilføje de mængder, du samler af hver, således: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

For "fruit" er der fire (4) typer, du samler, og de angives som argumenter, nemlig: "apple", "pear", "orange" og "peach". Disse skal opbevares i beholderen ved det røde tæppe. Brug samme format som i den forrige opsætning, og sørg for, at alle varer bliver samlet og opbevaret for at fuldføre niveauet.

Kodebog