Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Pokročilé funkce
Funkce s proměnným počtem argumentů

Cíl

Seberte všechny spotřební materiály ve skladu a zabalte je do skladovacích kontejnerů pomocí funkcí s variabilními argumenty.

Ve skladu se nachází několik potravinových položek, které je třeba zabalit, aby mohly být odeslány k prodeji. Aby bylo možné to provést efektivně, můžete vytvářet vlastní funkce s proměnným počtem argumentů. Jedná se o funkce, které nemají pevně stanovený počet argumentů a umožňují vám zadat tolik argumentů, kolik potřebujete pro vykonání jejich akcí.

Existují dva (2) způsoby, jak přidat proměnný počet argumentů do funkce, v závislosti na tom, čeho chcete dosáhnout. První metoda spočívá ve vytvoření seznamu argumentů – místo zadávání různých názvů argumentů umístíte před jeden argument hvězdičku. Tím se automaticky vytvoří seznam.

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

Druhá metoda spočívá v umístění argumentů do slovníku místo do seznamu. Postup je stejný jako u předchozí metody, ale místo jedné hvězdičky použijete dvě. Tím se automaticky vytvoří slovník místo seznamu.

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}

Pro zabalení všech položek pro přepravu vytvořte dvě sady vlastních funkcí – jednu pro balení jednotlivých položek a druhou pro balení více položek dohromady. Použijte variabilní argumenty k zabalení různých položek společně, aniž byste museli vytvářet příliš mnoho funkcí.

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)

Na poli se nacházejí čtyři (4) různé typy položek: "jars", "eggs", "berries" a "fruit". Seberte všechny položky ve skladu a vydejte se směrem k X značkám na dopravní cestě. Jděte ke tmavým X značkám a použijte funkci pack_singles k zabalení položek "jars" a "eggs".

U položky "jars" existují čtyři (4) typy, které sbíráte a zadáváte jako argumenty, a to "white", "purple", "red" a "brown". Tyto mají být uloženy v kontejneru u zeleného koberce. Kód se píše takto: pack_singles("jars", "white", "purple", "red", "brown")

U položky "eggs" existují tři (3) typy, které sbíráte a zadáváte jako argumenty, a to "white", "green" a "blue". Tyto mají být uloženy v kontejneru u oranžového koberce. Používá se stejný formát jako u předchozí položky.

Poté se vydejte ke světlým X značkám a použijte funkci pack_multi k zabalení položek "berries" a "fruit". U položky "berries" existují tři (3) typy, které sbíráte a zadáváte jako argumenty, a to "red", "blue" a "purple". Tyto mají být uloženy v kontejneru u modrého koberce. U každé z nich je třeba přidat množství, které jste nasbírali, například: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

U položky "fruit" existují čtyři (4) typy, které sbíráte a zadáváte jako argumenty, a to "apple", "pear", "orange" a "peach". Tyto mají být uloženy v kontejneru u červeného koberce. Použijte stejný formát jako u předchozí položky a ujistěte se, že jsou všechny položky sesbírány a uloženy, aby úroveň mohla být dokončena.

Kniha Kódu