18. diel - Matematické funkcie v Pythone a knižnica math
V minulej lekcii, Funkcie a výnimky v Pythone, sme si ukázali, ako na funkcie a základy ošetrovania chýb.
V dnešnom tutoriále sa budeme venovať knižnici math
, ktorá
poskytuje Pythonu matematické funkcie ako zaokrúhlenie, 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()
Pokiaľ 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 Pokiaľ 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. Tiež 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 pre výpočty. Pozrime sa na tie najzákladnejšie.
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 π
Funkcia na zaokrúhľovanie
ceil()
a floor()
Funkcia ceil()
vykoná zaokrúhlenie na najbližšie celé
číslo smerom hore, funkcia floor()
potom dole :
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.
Funkcia pre
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ť, tj
math.sqrt(x*x + y*y)
. Alebo inými slovami na základe Pytagorovej
vety vypočíta preponu pravouhlého trojuholníka:
import math
print(math.hypot(3, 4))
Funkcia 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))
V budú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.