Coding for KidsCoding for Kids
Kreative NivåerUtfordringerLærerveiledning
Stem på funksjoner
Avansert Pythonutviklingskurs
Kapittel
>
Nivå

Matematikkmoduler
Operator-modul

Målsetning

Verifiser og fordel de nye bestillingene på byggematerialer for jordbruksanlegget ved å bruke operator-modulen.

Den øvre etasjen i annekset har noen kontorer som oppbevarer logger over beholdningen og bestillingene for byggematerialene som trengs for den nye tomteutviklingen. Det finnes en rekke forskjellige verktøy som kan brukes til å verifisere og beregne materialene slik at de kan benyttes i byggingen, i tillegg til matematikk- og statistikkmodulen kan vi bruke operator-modulen.

Denne modulen, import operator, kan brukes for å forenkle operatorberegninger og praktisk pakke dem inn i funksjoner. Du kan bruke disse funksjonene både for optimalisering og for å produsere verdier uten å måtte opprette et objekt for å lagre verdiene for beregningene.

  • operators.eq(): Tar to argumenter, og sjekker om argumentene er like.
  • operators.lt(): Tar to argumenter, og sjekker om det første argumentet er mindre enn det andre.
  • operators.gt(): Tar to argumenter, og sjekker om det første argumentet er større enn det andre.
  • operators.floordiv(): Tar to argumenter, dividerer det første argumentet med det andre og anvender det som tilsvarer math.floor(), slik at resultatet rundes ned.
  • operators.mod(): Tar to argumenter, og returnerer resten av divisjonen mellom de to argumentene.
  • operators.contains(): Funksjonen brukes med en liste, tar to argumenter, der det første argumentet er en liste og det andre er en verdi du ønsker å sjekke om er i listen. Returnerer: true eller false avhengig av om verdien er til stede eller ikke.
  • operators.concat(): Tar to listeargumenter, og kombinerer de to listene ved hjelp av en enkel funksjon, og kan være raskere enn andre metoder.
  • operators.countOf(): Tar to argumenter, en liste og en verdi, for å sjekke hvor mange ganger den verdien er til stede i listen. Returnerer antall forekomster av verdien.

For å starte, gå til det mørke X-merket over de røde, blå og grønne teppene. Det er seks (6) konstanter: red_order, blue_order, green_order, som er bestillinger for materialer, og: red_req, blue_req, green_req som er de nødvendige mengdene for byggingen.

Ved det mørke X-merket over det røde teppet, bruk funksjonen read() for å sjekke den nødvendige mengden materialer. Opprett en variabel kalt red_verification og bruk funksjonen operator.eq() med konstantene red_order og red_req, slik: red_verification = operator.eq(red_order,red_req). Med den forhåndsskrevne funksjonen write() bruk red_verification for å vise resultatet.

På det blå og grønne X-merket, gjenta samme prosess: bruk funksjonen read() og opprett variablene blue_verification og green_verification. For den blå variabelen, lagre verdien fra operator.lt() ved hjelp av konstantene blue_order og blue_req for å sjekke om bestillingen er mindre enn det som kreves. For den grønne variabelen, lagre verdien fra operator.gt() med konstantene green_order og green_req for å sjekke om bestillingen er større enn de nødvendige materialene. Bruk de forhåndsskrevne write()-funksjonene med de respektive verifikasjonsfunksjonene som tilsvarer de fargede teppene.

Deretter, gå til det lyse X-merket og på pulten bruk funksjonen read() for å sjekke bestillinger som allerede er gjort og som er på vei. I ordreboken finner du verdiene til to variable konstanter: main_order og sub_order, samt antallet seksjoner materialene skal deles inn i. Etter å ha lest i ordreboken, opprett en variabel kalt allocations og lagre verdien fra operator.floordiv() for å dele main_order-verdien med antallet seksjoner beskrevet i boken, slik: allocations = operator.floordiv(main_order, -add sections-). Dette deler ordren og runder ned resultatet. Bruk den forhåndsskrevne write()-funksjonen med variabelen allocations for å vise resultatet.

Gå til det gylne X-merket og opprett en variabel kalt remainder, lagre resultatet av operator.mod() og legg sammen konstantene main_order og sub_order for å finne resten av de to ordrene. På pulten, bruk den forhåndsskrevne funksjonen write() med variabelen remainder for å vise resultatet.

Beveg deg til det mørke X-merket over det lilla teppet; her skal vi verifisere om verktøyene som trengs til byggingen er levert. Vi har to listekonstanter, delivery_1 og delivery_2, og vi skal sjekke om verktøyene ble levert i den første leveransen. Opprett en variabel kalt tools og lagre resultatet av operator.contains(), for det første argumentet legg til listen delivery_1 og for det andre argumentet legg til strengen “tools”. Dette vil sjekke om verktøyene er tilstede i leveransen, slik: tools = operator.contains(delivery_1,"tools"). Når dette er gjort, bruk den forhåndsskrevne funksjonen write() med variabelen tools på pulten for å vise om verktøyene ble levert.

Neste opp er å sjekke alle leveransene. Beveg deg til det mørke X-merket over det hvite teppet og opprett en liste kalt materials. Bruk den til å lagre verdien fra operator.concat(), med listene delivery_1 og delivery_2 som argumenter. Dette vil raskt slå sammen de to listene til én enkelt liste. På pulten, bruk den forhåndsskrevne write()-funksjonen med variabelen materials for å notere alle materialene som allerede er levert til byggingen.

Til slutt, gå til det mørke X-merket over det oransje teppet. Her finnes noen forutsetninger skrevet for å starte byggingen, der en av hovedangivelsene er hvor mye tre som trengs i starten, uttrykt i tonn. Sjekk hvor mye tre som ble levert i hele leveransen og annonser det; bruk funksjonen speak() med operator.countOf()-funksjonen. For det første argumentet legg inn listen materials du opprettet, etterfulgt av strengen “wood”. Dette vil returnere hvor mange forekomster av tre som finnes i materials-listen. Dette illustrerer hvordan operatorfunksjoner kan brukes alene, uten å måtte lagres i et objekt, slik: player.speak(operator.countOf(materials,"wood")). Dette vil fullføre nivået.

Kodebok