Gevorderde Python-ontwikkelingscursus
Hoofdstuk
>
Niveau
Geavanceerde Functies
Polymorfe functies
In dit hoofdstuk gaan we nieuwe soorten functies verkennen, verschillende toepassingen ervan en hoe we er optimaal gebruik van kunnen maken bij het programmeren in Python.
In dit niveau beginnen we met polymorfe functies, functies die met een verscheidenheid aan datatypes gebruikt kunnen worden. Dit is vergelijkbaar met het gebruiken van dezelfde functie om verschillende dingen te doen, een universele functie.

Doel
Controleer de status van de gewassen en biggetjes, en bevestig bevoorradingsleveringen met behulp van polymorfe functies.
Binnenkort zullen er gewassen zijn die geoogst moeten worden zodat ze verzonden kunnen worden om verkocht te worden. De biggetjes moeten ook van voedsel worden voorzien, het is een goed idee om te zien hoeveel voedsel besteld moet worden. Om deze taken uit te voeren kun je polymorfe functies gebruiken, in dit geval gebruiken we de len() functie.
Polymorfe functies zijn functies die met meerdere verschillende gegevenstypen kunnen werken. Bijvoorbeeld, de len() functie wordt gebruikt om de lengte van objecten te berekenen; deze objecten kunnen verschillende gegevenstypen zijn zoals lijsten, woordenboeken en zelfs strings. Begin met het bijhouden van de telling op de lagere X-markeringen op het veld voordat je naar de hogere X-markeringen in de schuur gaat.
Er zijn verschillende biggetjes in een hok langs de weg, hun namen zijn "Peggle", "Peter", "Piper", "Pedro". Zet hun namen in een lijst zodat je ze kunt tellen. Zoals dit: piglets = ["Peggle", "Peter", "Piper", "Pedro"]. Maak een variabele genaamd number aan om de lengte van de lijst op te slaan met behulp van de len() functie, zoals dit: number = len(piglets).
Zodra je de lijst en variabele hebt ingesteld, loop naar de donkere X-markering voor het biggehok, keer je naar het hok en gebruik de speak() functie om de biggetjes te tellen met behulp van de speak() functie. Gebruik de variabele number om het resultaat te krijgen, zoals dit: player.speak("There are d% Piglets" % (number) )
Nadat je de biggetjes hebt gecontroleerd, loop je naar de lichte X-markering bij het veld, keer je naar de gewassen en tel je ze. Er zijn drie (3) verschillende soorten gewassen: "Tomatoes", "Pumpkins", "Eggplant". Tel hoeveel gewassen er van elk type groeien en sla ze op in een woordenboek, zoals dit:
crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops
Zodra je het woordenboek met de juiste waarden hebt gevuld, gebruik je de speak() functie in combinatie met de len() functie om het aantal beschikbare gewassen te tellen, zoals dit: player.speak("There are d% types of crops" % ( len(crops) ) ).
Zodra je zowel de biggetjes als de gewassen hebt geteld, loop je naar de donkere X-markering op de paarse mat om de bestellingen voor gewassen die verzonden moeten worden te controleren. Er is een constante variabele genaamd order die een string bevat met de bestellingen voor de gewassen die verzonden moeten worden. We moeten uitzoeken wat de bestellingen zijn en hoeveel bestellingen er zijn, dit kunnen we doen met behulp van de speak() functie en het uitpakken van de string, evenals met het gebruik van de len() functie.
player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )
Door de stringvariabele tussen vierkante haakjes te plaatsen en een * ervoor te zetten, activeren we een operator om de string uit te pakken, bijvoorbeeld: [*string]. Dit zorgt ervoor dat een string wordt opgesplitst in individuele tekens en in een lijst geplaatst, een voorbeeld is: [*string] geeft een lijst ['s', 't', 'r', 'i', 'n', 'g'] als resultaat. In het geval van len() op een string, telt het het aantal tekens in de string.
Om de oefening af te sluiten, loop je naar de gouden X-markering aan de rechterkant van de schuur en bepaal je hoeveel pond voedsel er voor de biggetjes geleverd moet worden. Maak een variabele genaamd food, waarbij je als waarde de variabele number gebruikt die je eerder hebt aangemaakt en vermenigvuldig deze met 35 om het aantal pond te bepalen, zoals dit: food = number * 35.
Terwijl je naar de schuur kijkt, gebruik je de speak() functie in combinatie met de variabele food om de hoeveelheid geleverd voedsel te bepalen, zoals dit: player.speak("There are d% pounds of food coming in" % (food) ).