Coding for KidsCoding for Kids
Kreatív SzintekKihívásokTanári Útmutató
Szavazzon a funkciókra
Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint

Haladó függvények
Változó számú argumentumú függvények

Célkitűzés

Gyűjtsd össze az osztályozható elemeket a raktárban, és csomagold őket tároló konténerekbe változó argumentumú függvények használatával.

Számos élelmiszer található egy raktárban, amelyeket csomagolni kell az értékesítéshez történő szállításhoz. Az hatékony eljárás érdekében készíthetsz egyedi függvényeket változó számú argumentummal. Ezek olyan függvények, amelyeknek nincs előre meghatározott számú argumentuma, és lehetővé teszik, hogy annyi argumentumot állíts be, amennyi szükséges a függvény műveleteinek végrehajtásához.

Két (2) módszer létezik arra, hogy egy függvényhez változó számú argumentumot adj meg, a célodtól függően. Az első módszer egy argumentumlista létrehozása; ahelyett, hogy különböző argumentumneveket adnál meg, egyetlen argumentum elé helyezel egy csillagot. Ez automatikusan létrehoz egy listát.

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

A második módszer az, hogy az argumentumokat egy szótárba helyezed a lista helyett; ugyanolyan módon, mint az előző módszernél, de egy csillag helyett kettőt használsz. Ez automatikusan létrehoz egy szótárat a lista helyett.

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}

Az összes elem szállításra történő csomagolásához hozz létre két egyedi függvényt, egyet az egyes elemek csomagolására és egyet a több elem együttes csomagolására. Használd a változó argumentumokat, hogy különböző elemeket csomagolj össze anélkül, hogy túl sok függvényt kellene létrehoznod.

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)

A pályán négy (4) különböző típusú elem található: "jars", "eggs", "berries" és "fruit". Gyűjtsd össze az összes elemet a raktárban, és sétálj az X jelzések felé a szállítási útvonalon. Menj a sötét X jelzésekhez, és használd a pack_singles függvényeket a "jars" és az "eggs" csomagolásához.

A "jars" esetében négy (4) típust gyűjtesz össze, amelyeket argumentumként adsz meg, ezek: "white", "purple", "red" és "brown". Ezeket a zöld szőnyeg melletti tárolóba kell helyezni. A kód így íródik: pack_singles("jars", "white", "purple", "red", "brown")

Az "eggs" esetében három (3) típust gyűjtesz össze, amelyeket argumentumként adsz meg, ezek: "white", "green" és "blue". Ezeket a narancssárga szőnyeg melletti tárolóba kell helyezni. Ugyanazt a formátumot használjuk, mint az előző esetben.

Ezután menj a világos X jelzésekhez, és használd a pack_multi függvényt a "berries" és a "fruit" csomagolásához. A "berries" esetében három (3) típust gyűjtesz össze, amelyeket argumentumként adsz meg, ezek: "red", "blue" és "purple". Ezeket a kék szőnyeg melletti tárolóba kell helyezni. Ide hozzá kell adnod az egyes típusokból összegyűjtött mennyiségeket, például így: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

Az "fruit" esetében négy (4) típust gyűjtesz össze, amelyeket argumentumként adsz meg, ezek: "apple", "pear", "orange" és "peach". Ezeket a piros szőnyeg melletti tárolóba kell helyezni. Ugyanazt a formátumot használd, mint az előző esetben, és győződj meg róla, hogy minden elem összegyűjtésre és tárolásra kerül a szint befejezéséhez.

Kódkönyv