Zimní výprodej Kotlin týden
Pouze tento týden sleva až 80 % na e-learning týkající se Kotlin
40 % bodů zdarma díky naší Zimní akci!

Lekce 10 - Knihovny math a random

V minulé lekci, Vícerozměrná pole v Pythonu, jsme si ukázali, jak na funkce a základy ošetřování chyb. Dnes se v Python tutoriálu naučíme používat některé z knihoven, hlavně tu základní matematickou.

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 jejich vývoj bude pohodlnější a rychlejší.

import

Import knihoven (zpřístupnění knihovny) se provádí pomocí následující syntaxe:

Nejlepší způsob:

import nazev_modulu

Poté funkci z modulu voláme stejně, jako by to byla metoda modulu:

nazev_modulu.nazev_funkce()

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

from nazev_modulu import nazev_funkce

Poté stačí napsat jen:

nazev_funkce()

Pro zpřístupnění všeho z modulu:

from nazev_modulu import *

Tohle používejte jen pokud víte, co děláte...

Lze použít i aliasy s následující syntaxí:

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!

math

Jako první si představíme matematickou knihovnu Pythonu - math. Pojďme ji naimportovat:

import math

Modul math obsahuje dvě konstanty - pí a Eulerovo číslo:

import math
print(math.pi)
print(math.e)

Modul nám také poskytuje velmi užitečné funkce (metody) pro počítání. Nejzákladnější funkce jsou:

sin()

Vrátí hodnotu funkce sinus pro úhel v radiánech, který předáme jako parametr:

import math
print(math.sin(math.pi/2))

cos()

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Vrátí hodnotu funkce cosinus pro úhel v radiánech, který předáme jako parametr:

import math
print(math.cos(math.pi))

tan()

Vrátí hodnotu funkce cosinus pro úhel v radiánech, který předáme jako parametr:

asin()

Vrátí úhel v radiánech pro danou hodnotu, jenž vznikla z funkce sinus. Opačná funkce k sinus, hodnotu předáme v parametru.

acos()

Vrátí úhel v radiánech pro danou hodnotu, jenž vznikla z funkce cosinus. Opačná funkce k cosinus, hodnotu předáme v parametru.

atan()

Vrátí úhel v radiánech pro danou hodnotu, jenž vznikla z funkce tangens. Opačná funkce k tangens, hodnotu předáme v parametru.

degrees()

Vrátí hodnotu úhlu převedenou z radiánů na stupně. Parametrem je úhel v radiánech:

import math
print(math.degrees(math.pi))

ceil()

Zaokrouhlí číslo na nejbližší celé číslo směrem nahoru:

import math
print(math.ceil(3.1))

floor()

Zaokrouhlí číslo na nejbližší celé číslo směrem dolů:

import math
print(math.floor(3.1))

fabs()

Vrátí absolutní hodnotu desetinného čísla. Vestavěná funkce abs() vrací absolutní hodnotu celého čísla.

import math
print(math.fabs(-3.1))

factorial()

Vrátí faktoriál daného čísla. Pokud je hodnota nečíselná nebo záporná, vyvolá výjimku ValueError:

import math
print(math.factorial(4))

pow()

Umocní první předané číslo na druhé číslo:

import math
print(math.pow(2, 3))

sqrt()

Vrátí druhou odmocninu z daného čísla:

import math
print(math.sqrt(16))

hypot()

Vrátí eukleidovskou vzdálenost, tj. math.sqrt(x*x + y*y):

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

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

import math
print(math.log(16, 4))

log10()

Vrátí logaritmus o základu 10 z daného čísla:

import math
print(math.log10(1000))

log2()

Vrátí logaritmus o základu 2 z daného čísla:

import math
print(math.log2(32))

A to byl výčet základních funkcí modulu math. Chcete-li další, stačí napsat help(math) - pozor - modul math musí být naimportován!

random

Jako druhý modul si představíme random, pojďme ho naimportovat:

import random

Modul random nám poskytuje mnoho užitečných funkcí. Tyto funkce nám umožňují generovat pseudo-náhodná čísla, míchat seznamy, vybírat z nich náhodně prvky a mnoho dalších. My si představíme základní z nich.

randint()

Vybere náhodné číslo v rozsahu od prvního do druhého čísla:

import random
print(random.randint(1, 4))
print(random.randint(1, 4))
print(random.randint(1, 4))
print(random.randint(1, 4))

choice()

Vybere náhodný prvek se seznamu (nebo jiné kolekce):

import random
seznam = [1, 2, 3, 4, 5]
print(random.choice(seznam))

shuffle()

Zamíchá pořadí prvků v seznamu. Lze použít i jiný datový typ, který podporuje přiřazování.(Zatím jiné kromě seznamu neznáme :) )

import random
seznam = [1, 2, 3, 4, 5]
random.shuffle(seznam)
print(seznam)

sample()

Náhodně vybere množství prvků ze seznamu. Lze použít i jinou kolekci. (Zatím jinou kromě seznamu neznáme :) )

import random
seznam = [1, 2, 3, 4, 5]
print(random.sample(seznam, 3))

Easter eggs

Na závěr sekce se základy Pythonu se podíváme na easter eggs. To jsou skryté a zábavné funkčnosti, které do jazyka schovali jeho tvůrci. Python jich pár obsahuje :) Zkuste si napsat:

1:

import this

2:

import antigravity

3:

import __hello__

4:

from __future__ import braces

5:

Dále si můžete v interaktivní konzoli upravit:

'>>> '

a

'... '

Pomocí:

>>> import sys
>>> sys.ps1 = "--> "
--> sys.ps2 = "--- " #následuje příklad
--> if True:
---     print("Hello World!")
---
--> Hello World!

Tak a to je pro dnešní lekci vše a tuto sekci vše. Kurz nyní pokračuje v sekci 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 byly až doteď utajovány.


 

 

Aktivity (11)

 

 

Komentáře

Avatar

Člen
Avatar
:16.11.2014 18:20

Sekce dobře napsaná a Python mne v mnohém pozitivně zaujal.

 
Odpovědět
16.11.2014 18:20
Avatar
davidhumpolik.linux:29.6.2015 22:37

No celá série je dost přínosná dokonce líp než barsjaká kniha.

Odpovědět
29.6.2015 22:37
Neni problém začít, ale vydržet...
Avatar
Jaroslav Trojan
Redaktor
Avatar
Jaroslav Trojan:1.5.2017 18:19

Zdravím,
mám program s funkcemi, ale funkce soucin(*cisla) mi u proměnných n1,m1,o1,p1 vyhodí jako výsledek nulu.
Přitom se ve funkci vstup() do proměnných přiřadí konkretní int.čísla.

Odpovědět
1.5.2017 18:19
statik
Avatar
gcx11
Redaktor
Avatar
Odpovídá na Jaroslav Trojan
gcx11:1.5.2017 18:27

Protože se ty proměnné ve funkci se berou jako lokální. Každá proměnná je viditelná pouze ve svém bloku. A ty když přijdeš do té funkce, tak se vyrobí nové proměnné se stejným názvem, které zakryjí ty proměnné, co jsi vyrobil předtím. Řešením je ty hodnoty vrátit jako výstup funkce.

 
Odpovědět
1.5.2017 18:27
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jaroslav Trojan
Redaktor
Avatar
Odpovídá na gcx11
Jaroslav Trojan:2.5.2017 8:03

Ahoj, provedl jsem návrat hodnot ve funkci, výsledek zase není správný.

Odpovědět
2.5.2017 8:03
statik
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Jaroslav Trojan
pocitac770:2.5.2017 12:31

Návratové hodnoty musíš někde uložit/použít, jak bylo řečeno, nemají vůbec nic společného s těmi proměnnými mimo blok funkce, proto bys musel napsat např

prikl = soucin(vstup())
Editováno 2.5.2017 12:32
 
Odpovědět
2.5.2017 12:31
Avatar
jan široký
Člen
Avatar
jan široký:28.11.2018 12:03

pow(číslo1, číslo2)
>>> print(math.power(2, 3))
8.0

nadpis neodpovida prikladu. jinak dekuju, moc hezkej tutorial

 
Odpovědět
28.11.2018 12:03
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na jan široký
David Čápka:28.11.2018 12:53

Díky, opraveno :)

Odpovědět
28.11.2018 12:53
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.