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

Generatorer
Sender data til en generator

Mål

Saml uld og spind den til garn ved hjælp af spinderne ved at sende data til en generator.

Nogle af fårene bliver et smule for uldede, det vil være bedst at klippe dem og samle deres uld. Du kan derefter føre ulden igennem en spinder for at producere garn. For at opnå dette, skal vi bruge en generator, da mængden af garn og uld der behandles kan variere stort.

Definér først en generator, der er i stand til at spinne garn, og navngiv den spin(). Denne generator skal sættes op til at bruge ekstern input for at fungere. Den læser data fra yield og placerer det i en variabel, derefter ændrer dens indhold ved at øge dens længde med hver cyklus, og til sidst producerer et resultat.

def spin(): cycle = 1 while True: cycle += 1 yarn = yield yarn = yarn * cycle yield player.speak("You've spun %d ft of yarn" % (yarn))

Da dette er en generator, kan while()-sætningen indeni pauseres og modificeres for at producere den ønskede output, dette kontrolniveau er kernen i, hvad en generator er, og hvordan den kan være nyttig ved databehandling. For at indsætte data i generatoren, definer den og brug send()-funktionen for at tilføre den de ønskede data, for eksempel:

spindle = spin() # Create an instance of the generator next(spindle) # Run the generator a single step spindle.send(6) # Insert data into the generator # In this case you're sending it the number 6

Gå hen til de lyse X-mærker ved de farvede tæpper og konfronter fårene. Der er en konstant ordbog ved navn sheep, der indeholder værdien af, hvor meget uld du kan klippe af hvert får. Brug speak()-funktionen med ordbogen og farven på det tæppe, du står på, for at klippe fårenes uld og kontrollere, hvor meget du har samlet. For eksempel: player.speak(sheep["green"]) .

Der er i alt fire (4) farvede tæpper: "green" , "red" , "blue" og "orange" . Når du har klippet fårene, skal du gå til de mørke X-mærker ved hvert farvet tæppe, hvor spinderne er placeret. Brug send() for at indtaste antallet af pund uld, der er klippet fra hvert får, i deres respektive farve ind i generatoren.

For eksempel, hvis du, når du klipper fårene på det "green" tæppe, klipper 4 pund uld, så gå til det "green" tæppe ved spinderne og send disse data til generatoren, sådan her:

next(spindle) spindle.send( 4)

Gør dette for alle de fire (4) mørke X-mærker på de farvede tæpper for at fuldføre niveauet.

Kodebog