Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Matematiikan moduulit
Operaattorimoduuli

Tavoite

Varmista ja allokoi uuden maatalousmaan rakennusmateriaalien tilaukset käyttämällä operator-moduulia.

Liitännäisen yläkerrassa on toimistoja, joissa säilytetään lokitietoja varastosta ja rakennusmateriaalien tilauksista, joita tarvitaan uudelle maa-alueen kehittämiselle. On olemassa erilaisia työkaluja, joita voidaan käyttää materiaalien tarkistukseen ja laskemiseen, jotta niitä voidaan käyttää rakentamisessa; matematiikka- ja tilastotieteen moduulin lisäksi voimme käyttää operator-moduulia.

Tätä moduulia, import operator, voidaan käyttää operaattorilaskelmien yksinkertaistamiseen ja kätevään pakkaamiseen funktioiksi. Näitä funktioita voi käyttää sekä optimointiin että arvojen tuottamiseen ilman, että täytyy luoda objektia, johon tallentaa laskelmien arvot.

  • operators.eq(): Ottaa kaksi argumenttia, tarkistaa ovatko argumentit keskenään yhtä suuret.
  • operators.lt(): Ottaa kaksi argumenttia, tarkistaa onko ensimmäinen argumentti pienempi kuin toinen.
  • operators.gt(): Ottaa kaksi argumenttia, tarkistaa onko ensimmäinen argumentti suurempi kuin toinen.
  • operators.floordiv(): Ottaa kaksi argumenttia, jakaa ensimmäisen argumentin toisella ja soveltaa vastaavaa math.floor()-toimintoa, pyöristäen tuloksen alaspäin.
  • operators.mod(): Ottaa kaksi argumenttia, palauttaa jakojäännöksen näiden kahden argumentin välisestä jaosta.
  • operators.contains(): Funktiota käytetään listan kanssa, ottaa kaksi argumenttia; ensimmäinen argumentti on lista, toinen on arvo, jota haluat tarkistaa, onko se listassa. Palauttaa: true tai false riippuen siitä, onko arvo läsnä vai ei.
  • operators.concat(): Ottaa kaksi listaa argumentteina, yhdistää nämä kaksi listaa yhdeksi siistiksi funktioksi, ja saattaa olla nopeampi kuin muut menetelmät.
  • operators.countOf(): Ottaa kaksi argumenttia, listan ja arvon, ja tarkistaa, kuinka monta kertaa kyseinen arvo esiintyy listassa. Palauttaa esiintymien lukumäärän.

Aloittaaksesi, kävele pimeän X-merkin luo punaisen, sinisen ja vihreän väristen mattojen yli. On olemassa kuusi (6) vakioa: red_order, blue_order, green_order, jotka ovat materiaalien tilauksia, sekä: red_req, blue_req, green_req, jotka ovat rakennukseen tarvittavat määrät.

Pimeän X-merkin kohdalla punaisella matolla, käytä read()-funktiota tarkistaaksesi tarvittavan materiaalimäärän. Luo muuttuja nimeltä red_verification ja käytä operator.eq()-funktiota vakioiden red_order ja red_req kanssa, kuten näin: red_verification = operator.eq(red_order,red_req). Käytä esikoodattua write()-funktiota ja syötä red_verification tuloksen näyttämiseksi.

Sinisen ja vihreän X-merkkien kohdalla toista sama prosessi; käytä read()-funktiota ja luo muuttujat: blue_verification ja green_verification. Siniselle muuttujalle tallenna operator.lt()-funktion arvo käyttäen vakioita blue_order ja blue_req, jotta tarkistetaan, onko tilaus pienempi kuin vaadittu määrä. Vihreälle muuttujalle tallenna operator.gt()-funktion arvo käyttäen vakioita green_order ja green_req, jotta tarkistetaan, onko tilaus suurempi kuin tarvittavat materiaalit. Käytä esikoodattuja write()-funktioita vastaavien varmennustoimintojen näyttämiseksi niiden värillisten mattojen kohdalla.

Seuraavaksi kävele valoisalle X-merkillä ja käytä pöydällä read()-funktiota tarkistaaksesi jo tehdyt ja matkalla olevat tilaukset. Tilauskirjassa löydät kahden vakion arvot: main_order ja sub_order sekä tiedon, moneen osaan materiaalit tulee jakaa. Tilauskirjan lukemisen jälkeen, luo muuttuja nimeltä allocations ja tallenna siihen operator.floordiv()-funktion arvo, jolla jaat main_order-arvon osien lukumäärän mukaan kirjassa kuvattuun määrään, kuten näin: allocations = operator.floordiv(main_order, -add sections-). Tämä jakaa tilauksen ja pyöristää tuloksen alaspäin. Käytä esikoodattua write()-funktiota muuttujan allocations näyttämiseksi.

Kävele kultaiselle X-merkillä ja luo muuttuja nimeltä remainder. Tallenna siihen operator.mod()-funktion tulos, joka laskee vakioiden main_order ja sub_order välisestä jaosta jakojäännöksen. Pöydällä käytä esikoodattua write()-funktiota muuttujan remainder näyttämiseksi.

Siirry pimeälle X-merkillä purppuran maton yli; täällä tarkistamme, onko rakennukseen tarvittavien työkalujen toimitus suoritettu. Meillä on kaksi listavakiota, delivery_1 ja delivery_2, ja tarkistamme, onko työkalut toimitettu ensimmäisessä erässä. Luo muuttuja nimeltä tools ja tallenna siihen operator.contains()-funktion tulos; ensimmäiseksi argumentiksi anna lista delivery_1 ja toiseksi argumentiksi merkkijono "tools". Tämä tarkistaa, löytyvätkö työkalut toimituksesta, kuten näin: tools = operator.contains(delivery_1,"tools"). Kun tämä on tehty, käytä pöydällä esikoodattua write()-funktiota muuttujan tools näyttämiseksi, jotta nähdään, onko työkalut toimitettu onnistuneesti.

Seuraavaksi tarkistetaan kaikki toimitukset; kävele pimeälle X-merkillä valkoisen maton yli ja luo lista nimeltä materials. Käytä sitä tallentaaksesi operator.concat()-funktion arvon, käyttäen argumentteina listoja delivery_1 ja delivery_2. Tämä yhdistää nopeasti molemmat listat yhdeksi listaksi. Pöydällä käytä esikoodattua write()-funktiota muuttujan materials kanssa, jotta saat kirjattua kaikki rakennukseen toimitetut materiaalit.

Lopuksi kävele pimeälle X-merkillä oranssin maton yli; täällä on annettu ennakkoedellytyksiä rakennuksen aloittamiselle, ja yksi tärkeimmistä merkinnöistä on, kuinka paljon puuta tarvitaan aluksi tonneina. Tarkista, kuinka paljon puuta on toimitettu koko toimituksessa, ja ilmoita se käyttämällä speak()-funktiota yhdessä operator.countOf()-funktion kanssa. Ensimmäiseksi argumenttina anna luomasi materials-lista ja sen jälkeen merkkijono "wood"; tämä palauttaa, kuinka monta kertaa puu esiintyy materials-listassa. Tämä havainnollistaa, kuinka operator-funktioita voidaan käyttää itsenäisesti ilman, että niitä tallennetaan objektiin, kuten näin: player.speak(operator.countOf(materials,"wood")). Tämä suorittaa tason loppuun.

Koodikirja