NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Lekce 18 - Matematické funkce v Pythonu a knihovna math

V minulé lekci, Funkce a výjimky v Pythonu, jsme si ukázali, jak na funkce a základy ošetřování chyb.

V dnešním tutoriálu se budeme věnovat knihovně math, která poskytuje Pythonu matematické funkce jako zaokrouhlení, goniometrické funkce, mocniny, odmocniny a podobně.

Knihovny

Knihovny (neboli moduly) nám poskytují užitečný zdroj datových typů, funkcí a různých nástrojů pro ještě lepší programy. Jednoduše nemusíme psát něco, co už někdo napsal před námi. Své programy složíme z existujících modulů a díky tomu bude jejich vývoj pohodlnější a rychlejší.

Import knihoven

Abychom mohli funkce z knihoven používat, musíme nejprve knihovnu importovat (zpřístupnit). Import se provádí pomocí následující syntaxe:

import nazev_modulu

Poté funkci z modulu zavoláme:

nazev_modulu.nazev_funkce()

Pokud chceme jen určitou funkci, můžeme ji importovat takto:

from nazev_modulu import nazev_funkce

Následně napíšeme:

nazev_funkce()

Pro zpřístupnění všeho z modulu použijeme hvězdičku *:

from nazev_modulu import *

Tento způsob je na první pohled jasným kandidátem na ulehčení práce. Opak je však pravdou :-) Pokud si zpřístupníme vše, velmi nám nabobtná jmenný systém. Také může dojít ke kolizi názvů z jiných modulů. Také se znepřehlední kód. Tento nástroj je tedy potřeba používat s důkladnou rozvahou.

Při importu můžeme s následující syntaxí použít i aliasy:

import nazev_modulu as vlastni_nazev

Aliasy se používají pro import modulů z balíčků. Balíčky jsou seskupení více modulů.

Moduly se importují na začátku programu.

Knihovna math

Základní matematické funkce jsou v Pythonu obsaženy v knihovně math. Knihovna nám poskytuje dvě základní konstanty: pi a e. Konstanta pi je pochopitelně číslo pí (3.1415…) a e je Eulerovo číslo, tedy základ přirozeného logaritmu (2.7182…). Asi je zřejmé, jak se s knihovnou pracuje, ale pro jistotu si na ukázku konstanty vypišme do konzole:

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

Výstup programu:

Konzolová aplikace
pí: 3.141592653589793
e: 2.718281828459045

Funkce knihovny math

Modul nám také poskytuje velmi užitečné funkce pro výpočty. Podívejme se na ty nejzákladnější.

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

Goniometrické funkce vrací hodnotu pro úhel v radiánech, který předáme jako parametr. Syntaxe je u všech funkcí stejná:

import math
print(math.sin(math.pi/2))  # Vrací sinus 90°

Radián je bezrozměrná jednotka používaná pro velikost úhlu. Plný kruh odpovídá úhlu radiánů.

Konverzní funkce degrees() a radians()

Funkce degrees() převádí hodnotu úhlu z radiánů na stupně, zatímco radians() převádí stupně na radiány:

import math
print(math.degrees(math.pi))   # Vrací 180.0
print(math.radians(180))       # Vrací hodnotu π

Funkce pro zaokrouhlování ceil() a floor()

Funkce ceil() provede zaokrouhlení na nejbližší celé číslo směrem nahoru, funkce floor() pak dolů :

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

Funkce round(), kterou už dobře známe, zaokrouhluje podle pravidel matematiky. Není součástí knihovny math, jde o vestavěnou (built-in) funkci Pythonu.

Funkce pro práci s čísly fabs(), factorial(), pow() a sqrt()

Funkce fabs() nám vrátí absolutní hodnotu desetinného čísla. Funkce factorial() vrátí faktoriál daného čísla. Pokud je hodnota nečíselná nebo záporná, vyvolá funkce factorial() výjimku ValueError. Funkce pow() umocní první předané číslo na druhé číslo a sqrt() vrátí druhou 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))

Funkce hypot()

Funkce vrátí euklidovskou vzdálenost, tj. math.sqrt(x*x + y*y). Neboli jinými slovy na základě Pythagorovy věty vypočítá přeponu pravoúhlého trojúhelníka:

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

Funkce pro logaritmy log(), log10() a log2()

Funkce log() vrátí logaritmus čísla o základu, je-li zadán. Pokud ne, funkce vrátí hodnotu přirozeného logaritmu (se základem Eulerova čísla). Funkce log10() vrátí z daného čísla logaritmus o základu 10 a log2() vrátí z daného čísla logaritmus o základu 2:

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

Tak to bychom měli. V kurzu Základní konstrukce jazyka Python naleznete ještě několik dalších příkladů k procvičení, které určitě doporučujeme vypracovat. Na kurz nyní navazují Základy objektově orientovaného programování v Pythonu. Příště si tedy představíme objektový svět a pochopíme mnoho věcí, které nám až doteď byly skryty :)

V příští lekci, Nejčastější chyby Python začátečníků, děláš je také?, si ukážeme nejčastější chyby začátečníků v Pythonu, např. ohledně pojmenování kolekcí, bool výrazů a DRY.


 

Předchozí článek
Funkce a výjimky v Pythonu
Všechny články v sekci
Základní konstrukce jazyka Python
Přeskočit článek
(nedoporučujeme)
Nejčastější chyby Python začátečníků, děláš je také?
Článek pro vás napsal gcx11
Avatar
Uživatelské hodnocení:
687 hlasů
(^_^)
Aktivity