IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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


 

Predchádzajúci článok
Funkcie a výnimky v Pythone
Všetky články v sekcii
Základná konštrukcia 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:
4 hlasov
(^_^)
Aktivity