Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint
Haladó függvények
Polimorf Függvények
Ebben a fejezetben új típusú függvényeket fogunk felfedezni, azok különböző felhasználási módjait, és azt, hogyan hozhatjuk ki belőlük a legtöbbet Python kódolása közben.
Ebben a szinten a polimorf függvényekkel kezdünk, melyek különféle adattípusokkal is használhatóak. Ez olyan, mintha ugyanazt a függvényt különböző dolgokra alkalmaznánk, egy egységes, univerzális függvényt.

Célkitűzés
Ellenőrizd a termények és malacok állapotát, és erősítsd meg a szállítmányok rendelését polimorf függvények segítségével.
Hamarosan néhány terményt kell leszedni, hogy kiszállíthassák az eladás érdekében. A malacoknak is ételre van szükségük, ezért jó ötlet megszámolni, mennyi ételt kell rendelni. Ezen feladatok elvégzéséhez polimorf függvényeket használhatsz, ebben az esetben a len() függvényt fogjuk használni.
A polimorf függvények olyan függvények, amelyeket többféle adattípussal is használhatunk. Például a len() függvény az objektumok hosszának kiszámítására szolgál, és ezek az objektumok különböző adattípusok lehetnek, mint a listák, szótárak, sőt karakterláncok. Kezdd azzal, hogy megszámolod az alsó X jeleket a mezőn, mielőtt áttérnél a magasabb X jelekre a pajtában.
Több malac is van egy ketrecben az út mellett, neveik: "Peggle", "Peter", "Piper", "Pedro". Tedd a neveiket egy listába, hogy megszámolhasd őket. Ily módon: piglets = ["Peggle", "Peter", "Piper", "Pedro"] . Hozz létre egy number nevű változót a lista hosszának tárolására a len() függvény használatával, így: number = len(piglets).
Miután beállítottad a listát és a változót, menj a malacketrec előtt található sötét X jelhez, fordulj a ketrec felé, és használd a speak() függvényt a malacok megszámlálásához. A number változóval kapd meg az eredményt, így: player.speak("There are d% Piglets" % (number) )
Miután kész vagy a malacok ellenőrzésével, menj a mezőnél található világos X jelhez, fordulj a termény felé, és számláld őket. Három (3) különböző típusú termény van: "Tomatoes", "Pumpkins", "Eggplant". Számold meg, hogy hány termény nő mindegyikből, és tárold őket egy szótárban, így:
crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops
Miután feltöltötted a szótárat a megfelelő értékekkel, használd a speak() függvényt a len() függvénnyel együttesen, hogy megszámold a rendelkezésre álló terménytípusokat, így: player.speak("There are d% types of crops" % ( len(crops) ) ) .
Miután megszámoltad mind a malacokat, mind a terményeket, menj a lila szőnyegen található sötét X jelhez, hogy ellenőrizd a kiszállítandó termények rendelését. Van egy order nevű változó, amely egy karakterláncot tartalmaz a kiszállítandó termények rendeléseiről. Meg kell tudnunk, hogy mik a rendelések, és hány rendelésünk van, ezt a speak() függvény használatával, a karakterlánc szétszedésével, valamint a len() függvény alkalmazásával érhetjük el.
player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )
A karakterlánc változó behelyezésével kapcsos zárójelek közé és a * használatával aktiváljuk a karakterlánc szétszedését, például: [*string]. Ez azt jelenti, hogy a karakterlánc minden egyes karakterét külön elemmé teszi egy listában; például: [*string] eredménye egy lista: ['s', 't', 'r', 'i', 'n', 'g']. A len() függvény használata esetén pedig megszámolja, hogy hány karakterből áll a string.
A feladat lezárásaként menj a pajta jobb oldalán található arany X jelhez, és állapítsd meg, hány font ételt kell szállítani a malacok számára. Hozz létre egy food nevű változót, amelynek az értékét úgy kapod meg, hogy a korábban létrehozott number változót megszorzod 35-tel, így: food = number * 35.
Miközben a pajtát nézed, használd a speak() függvényt a food változóval együtt, hogy meghatározd a szállítandó étel mennyiségét, így: player.speak("There are d% pounds of food coming in" % (food) ) .