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

Matematiikkamoduulit
Matematiikkamoduulin johdanto

Tavoite

Tarkista maatöiden asiakirjat ja kiinteistörajat tilalla, varmista ja laske luvut käyttämällä Math Module -moduulin funktioita.

Päärakennuksen aivan reunalla sijaitsevassa toimistossa on arkisto vanhoja rakennuspiirustuksia sekä maatöiden asiakirjoja. On suunnitelmissa laajentaa tilaa kohti itää, mutta ennen rakennussuunnitelmien tarkastamista on tärkeää saada kaikki paperit kuntoon. Tämä tehdään käyttämällä pythonin math-moduulia.

import math

Aiemmin käytetyn statistics-moduulin tavoin math-moduulissa on kokoelma matemaattisia funktioita, joita voimme käyttää pythonin sisäisen kirjaston laajentamiseen:

  • math.isnan(): Tarkistaa, onko syötetty arvo ei-luku

  • math.isinf(): Tarkistaa, onko syötetty arvo ääretön

  • math.isfinite(): Tarkistaa, onko syötetty arvo äärellinen

  • math.prod(): Kertoo kaikki lisätyt argumentit keskenään

  • math.pow(): Ottaa kaksi argumenttia ja palauttaa ensimmäisen argumentin potenssiin, joka annetaan toisena

  • math.trunc(): Poistaa liukulukuarvosta desimaalit tehden siitä kokonaisluvun. (Ei pyöristä, vaan poistaa)

  • math.copysign(): Ottaa kaksi argumenttia, kopioi toisen argumentin etumerkin (- tai +) ja soveltaa sitä ensimmäiseen

  • math.factorial(): Ottaa argumentin ja laskee luvun kertomalla sitä vähenevässä jaksossa aina lukuun 1 saakka. Esimerkiksi, jos arvo on 5, se laskee: 5 x 4 x 3 x 2 x 1 ja tuottaa tuloksen

Käytämme näitä funktioita tarkastelemaan ja kaavioon merkitsemään joitakin tietoja valmistelemaan kehitysprojekteja. Tilaa koskevia piirustuksia sisältää kolme listavakiota, nimeltään: red_schematics, green_schematics, blue_schematics. Näissä piirustuksissa on kirjoitettu ei-numeerisia ja käyttökelvottomia arvoja, joten käytä matemaattisia funktioita tunnistaaksesi elementit ja löytääksesi käyttökelpoiset tiedot, jotta voimme kaavioon merkitä ne.

Ensiksi, kävele tumman X-merkin luokse punaisen maton päällä ja käytä silmukkaa käydäksesi läpi red_schematics-listan elementit tunnistaaksesi käyttökelpoiset arvot.

for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)

Silmukka käy läpi kaikki listan elementit; math.isnan()-funktio tunnistaa ei-numeeriset merkinnät ja math.isinf()-funktio tunnistaa äärettömät arvot, joita ei voida käyttää tietojen keräämiseen. Luo uusi lista nimeltä red_values ja käytä listan ymmärrystä (list comprehension) poistaaksesi ei-toivotut elementit hyödyntämällä math.isfinite()-funktiota niiden suodattamiseksi, esimerkiksi näin: red_values = [x for x in red_schematics if math.isfinite(float(x))].

Lisää lisäksi luvut yhteen käyttämällä math.prod()-funktiota yhdistääksesi kaikki listan alkiot, esimerkiksi näin: red_values = math.prod(red_values).

Suorita sama suodatusprosessi tummien X-merkkien kohdalla vihreän ja sinisen maton päällä, käyttäen green_schematics- ja blue_schematics-listavakioita ja yhdistä elementit listoihin nimeltä green_values ja blue_values.

Kävele kultaisen X-merkin luo, käänny pöydän puoleen ja käytä editorissa ennakkoon kirjoitettua write()-funktiota kaavioon merkitäksesi käyttökelpoiset piirustustiedot. Kun olet koonnut kaiken, kävele vaalean X-merkin luokse ja käytä open()-funktiota avataksesi seuraava huone.

Kun saavut seuraavaan huoneeseen, siellä on pari pöytää, joilla on kiinteistöasiakirjoja ja koordinaatteja. On hyvä idea kaavioon merkitä tietoja ennen kuin siirryt tarkistamaan tilalle tehdyt uudet lisäykset seuraavalla alueella sillan yli.

Kävele vaalean X-merkin luokse ensimmäisen pöydän vieressä olevan kartta-laatikon eteen, käytä read()-funktiota saadaksesi indeksoidut tiedot kiinteistöasiakirjoista.

Kävele tumman X-merkin luo violetta mattoa päällekäyden kohdalle, luo muuttuja nimeltä purple_data ja käytä math.pow()-funktiota kertomaan saamasi tiedot saadaksesi koordinaattitietoa. Korota indeksi potenssiin 3, esimerkiksi näin: purple_data = math.pow( -index data- , 3 ), muista lisätä aiemmin lukemasi indeksi data. Käytä math.trunc()-funktiota poistaaksesi desimaalit muuttujasta, esimerkiksi näin: purple_data = math.trunc(purple_data). Kun olet valmis, käytä X-merkin kohdalla editorissa ennakkoon kirjoitettua write()-funktiota purple_data-arvon kanssa kaavioon merkitäksesi muuttujaan tallennetut tiedot.

Viimeistele tehtävä kävelemällä vaalean X-merkin luokse yläpöydän vieressä olevan arkistokaapin eteen. Käytä read()-funktiota saadaksesi uudelleen indeksoidut tiedot; nämä tiedot täytyy purkaa paljastaakseen lisää maaston koordinaattitietoja. Luo muuttuja nimeltä white_data tallentaaksesi tiedostosta löytyneen tietovärin ja muuttuja nimeltä sign tallentaaksesi tiedostosta löytyneen etumerkin numeron. Kävele tumman X-merkin luo valkoisen maton päällä ja käytä math.copysign()-funktiota käyttäen kahta luomaasi muuttujaa argumentteina ja määrittele arvo white_data:ksi, esimerkiksi näin: white_data = math.copysign(white_data,sign).

Kun tämä on tehty, käytä white_data:a yhdessä math.factorial()-funktion kanssa kertomaan indeksi; muunna white_data kokonaisluvuksi ja käytä sitä funktiossa, esimerkiksi näin: white_data = math.factorial(int(white_data)). Käytä valmiiksi kirjoitettua write()-funktiota kaavioon merkitäksesi white_data:n, jotta taso saadaan päätökseen.

Koodikirja