Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň
Matematické moduly
Rozšířený modul matematiky
Cíl
Vypočítejte nové rozšíření pozemků na farmě s využitím dalších funkcí importovaných z modulu math.
Přes most se ve vedlejší budově nachází několik kanceláří, které slouží k mapování nezahrnutých pozemků, jež spojují dvě různé části farmy. Zde nalezneme rozměry pozemků a informace o měření; bylo by dobré je seřadit a zdokumentovat data. Lze to provést pomocí modulu math. V této úrovni budeme seznámeni s novou sadou funkcí, které můžeme využít ke zpracování dat. Použijete stejný příkaz import math a před funkcemi použijete math. k využití této sady:
math.radians(): Převádí stupně na radiány/úhly.math.floor(): Zaokrouhlí číslo dolů na základní hodnotu.math.ceil(): Zaokrouhlí číslo nahoru na vyšší hodnotu.math.atan2(): Vrací arkustangens mezi dvěma čísly v radiánech.math.isclose(): Zjišťuje, zda jsou dvě čísla si navzájem blízká, vrací true/false.math.fsum(): Sečte desetinná čísla (float) z listu nebo jiného iterovatelného objektu.math.dist(): Zjistí vzdálenost mezi dvěma body, hodnoty musí být seznamy nebo iterovatelné objekty.
Začněte shromažďovat surová data z grafů tím, že se vydáte ke světle značícímu X přes červený a modrý koberec. Použijte funkci read() pro načtení potřebných surových rozměrů. Tato měření jsou již uložena ve čtyřech konstantách: red_x, red_y, blue_x a blue_y.
Jakmile obě sady dat identifikujete, vydejte se ke tmavému X přes oranžový koberec a postavte se ke stolu. Použijte math.radians() a math.ceil() pro převedení proměnných blue_x a blue_y na radiány a jejich zaokrouhlení nahoru. Použijte float() k zajištění, že konstanty jsou desetinná čísla, která lze upravovat. Například u proměnné blue_x: nejdříve převedete na radiány pomocí blue_x = math.radians(float(blue_x)) a poté zaokrouhlíte nahoru pomocí blue_x = math.ceil(float(blue_x)). Udělejte totéž pro blue_y na tomto X, a jakmile budete hotovi, použijte předem napsanou funkci write() a zapište proměnné blue_x a blue_y.
Vydejte se ke tmavému X přes zelený koberec a použijte math.radians() a math.floor() pro převedení proměnných red_x a red_y na radiány a jejich zaokrouhlení dolů. Například u proměnné red_x: nejdříve proveďte převod na radiány pomocí red_x = math.radians(red_x) a poté zaokrouhlete dolů pomocí blue_x = math.floor(red_x). Udělejte totéž u red_y na tomto X, a jakmile budete hotovi, použijte předem napsanou funkci write() a zapište proměnné red_x a red_y.
Vydejte se ke zlatému X a postavte se ke stolu, kde vytvoříte dvě nové proměnné, data_a a data_b. Zde budeme ukládat arkustangens každé sady pomocí funkce math.atan2. Pro data_a použijete proměnné blue_x a blue_y takto: data_a = math.atan2(blue_x,blue_y). Pro data_b udělejte totéž, ale s proměnnými red_x a red_y. Jakmile budete hotovi, použijte předem napsanou funkci write() a zapište proměnné data_a a data_b.
Nyní, když jsou dolní stanoviště vyřízena, vydejte se ke tmavému X přes fialový koberec, vytvořte proměnnou comparison a použijte ji s funkcí math.isclose(), přičemž jako argumenty použijete data_a a data_b, takto: comparison = math.isclose(data_a, data_b). Na tomto X pak použijte předem napsanou funkci write() s proměnnou comparison.
Přesuňte se k X přes bílý koberec, vytvořte seznam nazvaný data_list a přidejte do něj v tomto pořadí data_a a data_b. Vytvořte proměnnou total a použijte funkci math.fsum() s data_list jako argumentem, takto: total = math.fsum(data_list). Na tomto X potom použijte předem napsanou funkci write() s proměnnou total.
Přesuňte se k tmavému X přes žlutý koberec a postavte se ke stolu, převeďte data_a a data_b na jednotlivé hodnoty seznamu, například pro data_a: data_a = [data_a]. Udělejte totéž pro data_b, aby se obě proměnné staly iterovatelnými a mohly být použity s funkcí math.dist(). Vytvořte proměnnou distance a uložte do ní výsledek funkce math.dist() s argumenty data_a a data_b. Nakonec použijte předem napsanou funkci write() s proměnnou distance a tím dokončíte úroveň.