NOVINKA: Kurz kybernetickej bezpečnosti teraz už od 0 €. Staň sa žiadaným profesionálom. Zisti viac:
NOVINKA: Staň sa dátovým analytikom od 0 € a získaj istotu práce, lepší plat a nové kariérne možnosti. Viac informácií:

19. diel - Matematické funkcie v Pythone a knižnica math

V minulej lekcii, Funkcie v Pythone, sme si ukázali, ako pracovať s funkciami, ich parametrami a návratovými hodnotami.

V dnešnom tutoriáli sa budeme venovať knižnici math, ktorá poskytuje Pythonu matematické funkcie ako zaokrúhľovanie, goniometrické funkcie, mocniny, odmocniny a podobne.

Knižnice

Knižnice (čiže moduly) nám poskytujú užitočný zdroj dátových typov, funkcií a rôznych nástrojov pre ešte lepšie programy. Jednoducho nemusíme písať niečo, čo už niekto napísal pred nami. Svoje programy zložíme z existujúcich modulov a vďaka tomu bude ich vývoj pohodlnejší a rýchlejší.

Import knižníc

Aby sme mohli funkcie z knižníc používať, musíme najprv knižnicu importovať (sprístupniť). Import sa vykonáva pomocou nasledujúcej syntaxe:

import module_name

Potom funkciu z modulu zavoláme:

module_name.function_name()

Ak chceme len určitú funkciu, môžeme ju importovať takto:

from module_name import function_name

Následne napíšeme:

function_name()

Na sprístupnenie všetkého z modulu použijeme hviezdičku *:

from module_name import *

Tento spôsob je na prvý pohľad jasným kandidátom na uľahčenie práce. Opak je však pravdou :-) Ak si sprístupníme všetko, veľmi nám napučí menný systém. Tiež môže dôjsť ku kolízii názvov z iných modulov. Taktiež sa zneprehľadní kód. Tento nástroj je teda potrebné používať s dôkladnou rozvahou.

Pri importe môžeme s nasledujúcou syntaxou použiť aj aliasy:

import module_name as custom_name

Aliasy sa používajú na import modulov z balíčkov. Balíčky sú zoskupenia viacerých modulov.

Moduly sa importujú na začiatku programu.

Knižnica math

Základné matematické funkcie sú v Pythone obsiahnuté v knižnici math. Knižnica nám poskytuje dve základné konštanty: pi a e. Konštanta pi je pochopiteľne číslo pí (3.1415…) a e je Eulerovo číslo, teda základ prirodzeného logaritmu (2.7182…). Asi je zrejmé, ako sa s knižnicou pracuje, ale pre istotu si na ukážku konštanty vypíšme do konzoly:

import math
print("pi:", math.pi)
print("e:", math.e)

Výstup programu:

Konzolová aplikácia
pi: 3.141592653589793
e: 2.718281828459045

Funkcie knižnice math

Modul nám taktiež poskytuje veľmi užitočné funkcie na výpočty. Pozrime sa na tie najzákladnejšie.

Výpočet odmocniny

Poďme si vyskúšať zistiť druhú odmocninu z čísla a zaokrúhliť ju.

Do Copilota zadáme prompt: "Ako v Pythone vypočítať druhú odmocninu z daného čísla a výsledok zaokrúhliť na celé číslo?"

Copilot nám vráti kód podobný tomuto:

number = 20
result = int(round(math.sqrt(number)))

Goniometrické funkcie sin(), cos(), tan(), asin(), acos() a atan()

Goniometrické funkcie vracajú hodnotu pre uhol v radiánoch, ktorý odovzdáme ako parameter. Syntax je pri všetkých funkciách rovnaká:

import math
print(math.sin(math.pi / 2))  # Returns the sine of 90°

Radián je bezrozmerná jednotka používaná na veľkosť uhla. Plný kruh zodpovedá uhlu radiánov.

Konverzné funkcie degrees() a radians()

Funkcia degrees() prevádza hodnotu uhla z radiánov na stupne, zatiaľ čo radians() prevádza stupne na radiány:

import math
print(math.degrees(math.pi))   # Returns 180.0
print(math.radians(180))       # Returns the value of π

Funkcie na zaokrúhľovanie ceil() a floor()

Funkcia ceil() vykoná zaokrúhlenie na najbližšie celé číslo smerom nahor, funkcia floor() potom nadol:

import math
print(math.ceil(3.1))
print(math.floor(3.9))

Funkcia round(), ktorú už dobre poznáme, zaokrúhľuje podľa pravidiel matematiky. Nie je súčasťou knižnice math, ide o vstavanú (built-in) funkciu Pythonu.

Funkcie na prácu s číslami fabs(), factorial(), pow() a sqrt()

Funkcia fabs() nám vráti absolútnu hodnotu desatinného čísla. Funkcia factorial() vráti faktoriál daného čísla. Ak je hodnota nečíselná alebo záporná, vyvolá funkcia factorial() výnimku ValueError. Funkcia pow() umocní prvé odovzdané číslo na druhé číslo a sqrt() vráti druhú odmocninu z daného čísla:

import math
print(math.fabs(-3.1))
print(math.factorial(4))
print(math.pow(2, 3))
print(math.sqrt(16))

Funkcia hypot()

Funkcia vráti euklidovskú vzdialenosť, t. j. math.sqrt(x*x + y*y). Inými slovami, na základe Pytagorovej vety vypočíta preponu pravouhlého trojuholníka:

import math
print(math.hypot(3, 4))

Funkcie pre logaritmy log(), log10() a log2()

Funkcia log() vráti logaritmus čísla o základe, ak je zadaný. Ak nie, funkcia vráti hodnotu prirodzeného logaritmu (so základom Eulerovho čísla). Funkcia log10() vráti z daného čísla logaritmus o základe 10 a log2() vráti z daného čísla logaritmus o základe 2:

import math
print(math.log(16, 4))
print(math.log10(1000))
print(math.log2(32))

Tak to by sme mali. V kurze Základné konštrukcie jazyka Python nájdete ešte niekoľko ďalších príkladov na precvičenie, ktoré určite odporúčame vypracovať. Na kurz teraz nadväzujú Základy objektovo orientovaného programovania v Pythone. Nabudúce si teda predstavíme objektový svet a pochopíme mnoho vecí, ktoré nám boli až doteraz skryté :)

Zhrnutie lekcie

Knižnice nám poskytujú hotové funkcie, konštanty a ďalšie nástroje, takže ich nemusíme písať sami. Aby sme ich mohli v programe použiť, musíme ich najprv importovať. Knižnica math obsahuje užitočné matematické konštanty, napríklad pi a e, aj funkcie pre odmocniny, mocniny, zaokrúhľovanie, goniometriu, logaritmy alebo faktoriál. Niektoré jej funkcie pracujú s uhlami v radiánoch, ktoré môžeme pomocou funkcií degrees() a radians() prevádzať na stupne a späť.

V nasledujúcej lekcii, Najčastejšie chyby Python začiatočníkov, robíš ich tiež?, si ukážeme najčastejšie chyby začiatočníkov v Pythone, napr. ohľadom pomenovania kolekcií, bool výrazov a DRY.


 

Predchádzajúci článok
Funkcie v Pythone
Všetky články v sekcii
Základné konštrukcie jazyka Python
Preskočiť článok
(neodporúčame)
Najčastejšie chyby Python začiatočníkov, robíš ich tiež?
Článok pre vás napísal gcx11
Avatar
Užívateľské hodnotenie:
135 hlasov
(^_^)
Aktivity