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 2π 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.
