Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Matematické moduly
Úvod do modulu matematiky

Cíl

Zkontrolujte pozemkové listiny a hranice pozemků na farmě, ověřte a spočítejte čísla pomocí funkcí modulu Math.

V kanceláři na samém okraji hlavní budovy se nachází archiv starých plánů budovy a pozemkových listin. Existují plány na rozšíření farmy směrem na východ, ale je důležité dát do pořádku veškerou dokumentaci dříve, než se rozhodnete podívat na jakékoli stavební plány. Toto bude provedeno pomocí modulu math v Pythonu.

import math

Stejně jako dříve u modulu statistik, i modul math obsahuje sbírku matematických funkcí, které můžeme použít k rozšíření vestavěné knihovny Pythonu:

  • math.isnan(): Kontroluje, zda zadaná hodnota není číslo

  • math.isinf(): Kontroluje, zda zadaná hodnota je nekonečné číslo

  • math.isfinite(): Kontroluje, zda zadaná hodnota je konečná

  • math.prod(): Vynásobí všechny zadané argumenty

  • math.pow(): Přijímá dva argumenty a vrací hodnotu prvního argumentu umocněnou na druhý argument

  • math.trunc(): Odstraní desetinnou část z čísla, čímž získá celé číslo. (Nezaokrouhluje, pouze odstraní)

  • math.copysign(): Přijímá dva argumenty, zkopíruje znaménko (-, +) z druhého argumentu a aplikuje ho na první

  • math.factorial(): Přijímá argument a vypočítá součin čísel sestupně od zadané hodnoty až do 1. Například, pokud je hodnota 5, vypočítá: 5 x 4 x 3 x 2 x 1 a vrátí výsledek.

Tyto funkce budeme používat k revizi a záznamu některých údajů, abychom připravili rozvojové projekty. Existují tři konstantní seznamy obsahující schémata pro zemědělskou půdu pojmenované: red_schematics, green_schematics, blue_schematics. Tato schémata obsahují nečíselné a nepoužitelné hodnoty, využijte matematické funkce k identifikaci prvků a nalezení použitelných dat, která zaznamenáme.

Nejprve se vydejte ke tmavé značce X nad červeným kobercem a použijte smyčku k procházení prvků konstantního seznamu red_schematics, abyste identifikovali použitelné prvky.

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)

Smyčka projde všechny prvky seznamu, funkce math.isnan() identifikuje nečíselné záznamy a math.isinf() identifikuje nekonečné hodnoty, které nelze použít pro účely sběru dat. Vytvořte nový seznam pojmenovaný red_values a použijte list comprehension k odstranění nežádoucích prvků pomocí math.isfinite(), například: red_values = [x for x in red_schematics if math.isfinite(float(x))].

Dále sečtěte všechna čísla dohromady použitím funkce math.prod(), která sečte všechny položky v seznamu, například: red_values = math.prod(red_values).

Stejný filtrací proces proveďte u tmavých značek X na zeleném a modrém koberci, a to s použitím konstantních seznamů green_schematics a blue_schematics, přičemž konsolidujte prvky do seznamů pojmenovaných green_values a blue_values. Poté se vydejte ke zlaté značce X, otočte se ke stolu a použijte předdefinovanou funkci write(), která zapíše použitelná data schématu. Jakmile budete mít vše pohromadě, vydejte se ke světlé značce X a použijte funkci open(), která otevře další místnost.

Jakmile vstoupíte do další místnosti, najdete zde několik stolů s pozemkovými listinami a souřadnicemi. Je dobré si zaznamenat některá data, než se přesunete ke kontrole nových přírůstků na farmě v další oblasti naproti mostu. Vydejte se ke světlé značce X před bednou s mapami u prvního stolu, použijte funkci read(), abyste získali indexová data pro pozemkové listiny.

Vydejte se ke tmavé značce X nad fialovým kobercem, vytvořte proměnnou pojmenovanou purple_data a použijte funkci math.pow() k umocnění získaných dat pro získání souřadnic. Umocněte index na mocninu 3, například: purple_data = math.pow( -index data- , 3 ), přičemž nezapomeňte přičíst předem přečtená indexová data. Poté použijte math.trunc(), abyste odstranili desetinnou část z proměnné, například: purple_data = math.trunc(purple_data). Jakmile budete hotovi, na značce X použijte předdefinovanou funkci write() s argumentem purple_data pro zaznamenání dat uložených v proměnné.

Na závěr se vydejte ke světlé značce X před kancelářskou skříní vedle vrchního stolu. Opět použijte funkci read(), abyste získali indexová data, která je třeba dále rozevřít a odhalit tak další souřadnicové informace o pozemku. Vytvořte proměnnou pojmenovanou white_data pro uložení hodnoty dat nalezených v souboru a proměnnou sign pro uložení čísla znaménka nalezeného v souboru. Vydejte se ke tmavé značce X nad bílým kobercem a použijte funkci math.copysign() s oběma vámi vytvořenými proměnnými jako argumenty, a výslednou hodnotu přiřaďte do white_data, například: white_data = math.copysign(white_data,sign).

Jakmile budete hotovi, použijte white_data s funkcí math.factorial() pro výpočet součinu indexu; převeďte white_data na celé číslo a použijte jej jako argument, například: white_data = math.factorial(int(white_data)). Nakonec použijte předdefinovanou funkci write() pro zaznamenání white_data a tím úspěšné dokončení úrovně.

Kniha Kódu