Avansert Pythonutviklingskurs
Kapittel
>
Nivå

Avanserte funksjoner
Polymorfe funksjoner

I dette kapitlet skal vi utforske nye typer funksjoner, ulike bruksområder for dem og hvordan vi kan utnytte dem best mulig når vi programmerer i Python.

På dette nivået starter vi med polymorfe funksjoner; det finnes funksjoner som kan brukes med en rekke ulike datatyper. Dette er som å bruke den samme funksjonen for å gjøre forskjellige ting, en universell funksjon.

Guide

Mål

Sjekk statusen på avlingene og grisungene, og bekreft forsyningsforsendelser ved bruk av polymorfe funksjoner.

Veldig snart bør det være noen avlinger som må høstes slik at de kan sendes ut for salg. Grisungene trenger også å få levert mat, og det vil være lurt å se hvor mye mat som må bestilles. For å utføre disse oppgavene kan du bruke polymorfe funksjoner, i dette tilfellet vil vi bruke funksjonen len().

Polymorfe funksjoner er funksjoner som kan brukes med flere forskjellige datatyper. For eksempel er len() en funksjon som brukes for å beregne lengden på objekter; disse objektene kan være av forskjellige datatyper som lister, ordbøker og til og med strenger. Start med å telle opp antallet ved de nedre X-markeringene på marken før du går videre til de høyere X-markeringene i skuret.

Det er flere grisunger inne i et inngjerdet område ved veien, og navnene deres er "Peggle", "Peter", "Piper", "Pedro". Sett navnene deres i en liste slik at du kan telle dem. Slik: piglets = ["Peggle", "Peter", "Piper", "Pedro"].

Lag en variabel kalt number for å lagre lengden på listen ved å bruke funksjonen len(), slik: number = len(piglets).

Når du har satt opp listen og variabelen, gå til den mørke X-markeringen foran grisungburet, vend deg mot buret og bruk funksjonen speak() for å telle grisungene. Bruk variabelen number for å få resultatet, slik: player.speak("There are d% Piglets" % (number) )

Etter at du har sjekket inn med grisungene, gå til den lyse X-markeringen ved marken, vend deg mot avlingene og tell dem. Det er tre (3) forskjellige typer avlinger: "Tomatoes", "Pumpkins", "Eggplant". Tell hvor mange av hver type avling som vokser og lagre dem i en ordbok, slik:

crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops

Når du har fylt ordboken med de riktige verdiene, bruk speak()-funksjonen sammen med len()-funksjonen for å telle antall tilgjengelige avlingstyper, slik: player.speak("There are d% types of crops" % ( len(crops) ) ).

Når du har telt både grisungene og avlingene, gå til den mørke X-markeringen på den lilla matten for å sjekke bestillingene for avlinger som skal sendes ut. Det finnes en konstant variabel kalt order som inneholder en streng med bestillingene av avlinger som skal sendes ut. Vi må finne ut hva bestillingene er og hvor mange bestillinger vi har; dette kan vi gjøre ved å bruke speak()-funksjonen og pakke ut strengen, samt ved å bruke len()-funksjonen.

player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )

Ved å sette strengvariabelen inne i klammer og med et * kan vi aktivere en operator for å pakke ut strengen; for eksempel: [*string]. Dette gjør at den tar en streng og separerer hvert enkelt tegn, og legger dem i en liste. Et eksempel er at [*string] vil gi en liste ['s', 't', 'r', 'i', 'n', 'g']. Når du bruker len() på en streng, teller den hvor mange tegn strengen har.

For å avslutte oppgaven, gå til den gylne X-markeringen på høyre side av skuret, og finn ut hvor mange pund med mat som må leveres til grisungene. Lag en variabel kalt food; sett som verdi variabelen number du opprettet tidligere, multiplisert med 35 for å bestemme antall pund, slik: food = number * 35.

Mens du vender mot skuret, bruk speak()-funksjonen sammen med variabelen food for å avgjøre hvor mye mat som blir levert, slik: player.speak("There are d% pounds of food coming in" % (food) ).

Kodebok