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

Matematikmoduler
Operator Modul

Mål

Verificer og alloker de nye bestillinger på byggematerialer til landbrugsjord ved at bruge operator-modulet.

Den øverste etage i anneksen har nogle kontorer, som opbevarer logfiler over lageret og bestillinger af de byggematerialer, der er nødvendige til den nye jordudvikling. Der findes en række forskellige værktøjer, som kan anvendes til at verificere og beregne materialerne, så de kan bruges til byggeri; ud over matematik- og statistikmodulet kan vi bruge operator-modulet.

Dette modul, import operator, kan bruges til at forenkle operatorberegninger og praktisk samle dem i funktioner. Du kan bruge disse funktioner både til optimering og til at producere værdier uden at skulle skabe et objekt til at gemme beregningsværdierne.

  • operators.eq(): Tager to argumenter, og tjekker om argumenterne er ens med hinanden.
  • operators.lt(): Tager to argumenter og tjekker, om det første argument er mindre end det andet.
  • operators.gt(): Tager to argumenter og tjekker, om det første argument er større end det andet.
  • operators.floordiv(): Tager to argumenter, dividerer det første argument med det andet og anvender det tilsvarende af math.floor(), der runder resultatet ned.
  • operators.mod(): Tager to argumenter og returnerer resten af divisionen mellem de to argumenter.
  • operators.contains(): Funktionen bruges med en liste, tager to (2) argumenter, det første argument er en liste, og det andet er en værdi, du ønsker at tjekke, om den er inde i listen. Returnerer: true eller false afhængigt af om værdien er til stede eller ej.
  • operators.concat(): Tager to listeargumenter, kombinerer de to lister sammen ved hjælp af en enkelt ren funktion, og kan være hurtigere end andre metoder.
  • operators.countOf(): Tager to argumenter, en liste og en værdi, for at tjekke hvor mange gange den værdi forekommer i listen. Returnerer antallet af forekomster af værdien.

For at starte, gå hen til de mørke X-mærker over de røde, blå og grønne tæpper. Der er seks (6) konstanter: red_order, blue_order, green_order, som er bestillinger på materialer samt: red_req, blue_req, green_req, som er de nødvendige mængder til byggeriet.

Ved det mørke X-mærke over det røde tæppe, brug read()-funktionen til at tjekke den nødvendige mængde materialer. Opret en variabel ved navn red_verification og brug operator.eq()-funktionen med konstanterne red_order og red_req, således: red_verification = operator.eq(red_order,red_req). Med den forudskrevne write()-funktion, brug red_verification til at vise resultatet.

Ved de blå og grønne X-mærker, gentag den samme proces: brug read()-funktionen og opret variablerne blue_verification og green_verification. For den blå variabel, gem værdien fra operator.lt() ved at bruge konstanterne blue_order og blue_req til at tjekke, om bestillingen er mindre end det nødvendige. For den grønne variabel, gem værdien fra operator.gt() ved at bruge konstanterne green_order og green_req til at tjekke, om bestillingen er større end de nødvendige materialer. Brug de forudskrevne write()-funktioner med de respektive verifikationsfunktioner, der svarer til de farvede tæpper.

Gå dernæst til det lyse X-mærke, og brug read()-funktionen på skrivebordet til at tjekke ordrer, der allerede er afgivet og er på vej. I ordrebogen vil du finde værdierne for to variable konstanter: main_order og sub_order samt, hvor mange sektioner materialerne skal deles i. Efter at have læst ordrebogen, opret en variabel ved navn allocations og gem værdien af operator.floordiv() til at dividere main_order-værdien med antallet af sektioner beskrevet i bogen, således: allocations = operator.floordiv(main_order, -add sections-) . Dette dividerer ordren og runder resultatet ned. Brug den forudskrevne write()-funktion med variablen allocations til at notere resultatet.

Gå hen til det gyldne X-mærke og opret en variabel ved navn remainder. Gem resultatet af operator.mod() for at addere både main_order og sub_order konstanterne for at producere resten af de to ordrer. På skrivebordet, brug den forudskrevne write()-funktion og anvend remainder-variablen for at notere resultatet.

Gå hen til det mørke X-mærke over det lilla tæppe, hvor vi vil verificere, om leverancen af de værktøjer, der er nødvendige til byggeriet, er foregået. Vi har to listekonstanter, delivery_1 og delivery_2, og vi vil tjekke, om værktøjerne blev leveret i den første forsendelse. Opret en variabel ved navn tools og gem resultatet af operator.contains(). For det første argument indsættes listen delivery_1 og for det andet argument tilføjes strengen “tools”. Dette vil tjekke, om værktøjerne er til stede i leverancen, således: tools = operator.contains(delivery_1,"tools"). Når det er gjort, brug den forudskrevne write()-funktion på skrivebordet med variablen tools for at notere, om værktøjerne blev leveret succesfuldt.

Dernæst skal du tjekke alle leverancerne. Gå hen til det mørke X-mærke over det hvide tæppe og opret en liste ved navn materials. Brug den til at gemme værdien af operator.concat(), ved at bruge listerne delivery_1 og delivery_2 som argumenter. Dette gør, at de to lister hurtigt fletter sammen til en enkelt liste. På skrivebordet, brug den forudskrevne write()-funktion med variablen materials for at notere samtlige materialer, der allerede er leveret til byggeriet.

Til sidst, gå hen til det mørke X-mærke over det orange tæppe. Her står der nogle forudsætninger skrevet for at starte byggeriet; en af de vigtigste angivelser er, hvor meget træ der er nødvendigt i starten i tonnage. Tjek, hvor meget træ der blev leveret i hele forsendelsen, og annoncer det. Brug speak()-funktionen sammen med operator.countOf()-funktionen. Til det første argument indsættes den oprettede liste materials efterfulgt af strengen “wood”; dette vil returnere, hvor mange forekomster af træ der er i listen. Dette illustrerer, hvordan operatorfunktioner kan bruges selvstændigt uden at skulle oprette et objekt til at gemme dem, således: player.speak(operator.countOf(materials,"wood")). Dette vil fuldføre niveauet.

Kodebog