Coding for KidsCoding for Kids
Kreative NiveauerUdfordringerLærervejledning
Stem på funktioner
Avanceret Python Udviklingskursus
Kapitel
>
Niveau

Avancerede Funktioner
Polymorfe funktioner

I dette kapitel vil vi udforske nye typer funktioner, forskellige anvendelsesmuligheder for dem og hvordan man får mest muligt ud af dem, når man koder i Python.

I dette niveau starter vi med polymorfe funktioner; der findes funktioner, der kan bruges med en række forskellige datatyper. Det svarer til at bruge den samme funktion til at udføre forskellige opgaver – en universel funktion.

Guide

Mål

Tjek status for afgrøderne og grisekidderne, og bekræft forsyningsforsendelserne ved hjælp af polymorfe funktioner.

Meget snart burde der være nogle afgrøder, som skal høstes, så de kan sendes ud for at blive solgt. Grisekidderne skal også have leveret mad, det ville være en god idé at se, hvor meget mad der skal bestilles. For at udføre disse opgaver kan du bruge polymorfe funktioner, i dette tilfælde vil vi bruge len() funktionen.

Polymorfe funktioner er funktioner, der kan bruges med flere forskellige datatyper. For eksempel er len() funktionen en funktion, der bruges til at beregne længden af objekter. Disse objekter kan være forskellige datatyper såsom lister, ordbøger og endda strenge. Start med at tælle op på de nederste X-mærker på marken, før du bevæger dig til de øverste X-mærker i skuret.

Der er flere grisekidder inde i en indhegning ved vejen, deres navne er "Peggle", "Peter", "Piper", "Pedro", så læg deres navne i en liste, så du kan tælle dem. Som dette: piglets = ["Peggle", "Peter", "Piper", "Pedro"]. Opret en variabel med navnet number for at gemme længden af listen ved at bruge funktionen len(), som dette: number = len(piglets).

Når du har oprettet listen og variablen, skal du gå til det mørke X-mærke foran grisekidde-indhegningen, vende dig mod indhegningen og bruge speak() funktionen til at tælle grisekidderne. Brug variablen number for at få resultatet, som dette: player.speak("There are d% Piglets" % (number) )

Når du er færdig med at tjekke grisekidderne, skal du gå til det lyse X-mærke ved marken, vende dig mod afgrøderne og tælle dem. Der er tre (3) forskellige typer af afgrøder: "Tomatoes", "Pumpkins", "Eggplant". Tæl, hvor mange afgrøder der vokser af hver type, og gem dem i en ordbog, som dette:

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

Når du har udfyldt ordbogen med de korrekte værdier, skal du bruge speak() funktionen sammen med len() funktionen for at tælle antallet af tilgængelige afgrøder, som dette: player.speak("There are d% types of crops" % ( len(crops) ) ).

Når du har talt både grisekidderne og afgrøderne, skal du gå til det mørke X-mærke på den lilla måtte for at tjekke ordrer for afgrøder, der skal sendes ud. Der er en konstant variabel med navnet order, som indeholder en streng med ordrer for afgrøder, der skal sendes ud. Vi skal finde ud af, hvad ordrerne er, og hvor mange ordrer vi har. Det kan vi gøre ved at bruge speak() funktionen og ved at pakke strengen ud samt bruge funktionen len().

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

Ved at sætte strengvariablen inde i parenteser og et * kan vi aktivere en operator til at pakke strengen ud, for eksempel: [*string]. Det, dette gør, er at tage en streng og adskille hvert enkelt tegn og lægge det i en liste, for eksempel vil [*string] give en liste ['s', 't', 'r', 'i', 'n', 'g']. Når du bruger len() på en streng, tæller den, hvor mange tegn strengen har.

For at afslutte øvelsen, gå til det gyldne X-mærke på højre side af skuret, og fastslå, hvor mange pund mad der skal leveres til grisekidderne. Opret en variabel med navnet food. Brug som værdi variablen number, som du oprettede tidligere, og multiplicer den med 35 for at fastslå mængden i pund, som dette: food = number * 35.

Mens du vender mod skuret, brug speak() funktionen sammen med variablen food for at fastslå mængden af mad, der bliver leveret, som dette: player.speak("There are d% pounds of food coming in" % (food) ).

Kodebog