Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

Naše on-line výuka Pythonu teď vlastně teprve začíná, nicméně v tomto kurzu s tutoriály o těch nejzákladnějších konstrukcích jazyka jsme již u konce. Jsem rád, že jsme se úspěšně dostali až sem, další sekce se totiž bude věnovat objektově orientovanému programování. Budeme tam vytvářet opravdu zajímavé aplikace a i jednu hru. Sekci zakončeme odlehčujícím článkem s přehledem matematických funkcí, které se nám v našich programech jistě budou v budoucnu hodit.

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 *

Na první pohled je tento způsob jasným kandidátem na ulehčení práce. Opak je pravdou :-) Pokud si zpřístupníme vše, velmi nám nabobtná jmenný systém. Může také 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 poží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 jasné, 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 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á 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í eukleidovskou vzdálenost, tj. math.sqrt(x*x + y*y). Nebo jinými slovy vypočítá na základě Pythagorovy věty 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, 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 utajovány :)

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í:
559 hlasů
(^_^)
Aktivity