10. díl - Knihovny math a random

Python Základní konstrukce Knihovny math a random

V minulém díle jsme si ukázali, jak na funkce a základy ošetřování chyb. Dnes se 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 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 knihovny Pythonu - math. Pojďme ji naimportovat:

import math

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

>>> print(math.pi)
3.1415926353589793
>>> print(math.e)
2.718281828459045

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

sin(úhel)
>>> print(math.sin(math.pi/2))
1.0

Vrátí hodnotu funkce sinus pro úhel v radiánech.

cos(úhel)
>>> print(math.cos(math.pi))
1.0

Vrátí hodnotu funkce cosinus pro úhel v radiánech.

tan(úhel)

Vrátí hodnotu funkce cosinus pro úhel v radiánech.

asin(hodnota)

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

acos(hodnota)

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

atan(hodnota)

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

degrees(úhel)
>>> print(math.degrees(math.pi))
180.0

Vrátí hodnotu úhlu převedenou z radiánů na stupně.

ceil(číslo)
>>> print(math.ceil(3.1))
4

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

floor(číslo)
>>> print(math.floor(3.1))
3

Zaokrouhlí číslo na nejbližší celé číslo směrem dolu.

fabs(číslo)
>>> print(math.fabs(-3.1))
3.1

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

factorial(číslo)
>>> print(math.factorial(4))
24

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

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

Umocní první číslo na druhé číslo.

sqrt(číslo)
>>> print(math.sqrt(16))
4.0

Vrátí druhou odmocninu z čísla.

hypot(číslo)
>>> print(math.hypot(3, 4))
5.0

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

log(číslo, základ)
>>> print(math.log(16, 4))
2.0

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

log10(číslo)
>>> print(math.log10(1000))
3.0

Vrátí logaritmus čísla o základu 10.

log2(číslo)
>>> print(math.log2(32))
5.0

Vrátí logaritmus čísla o základu 2.

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

Jaku 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(číslo1, číslo2)
>>> print(random.randint(1, 4))
2
>>> print(random.randint(1, 4))
4
>>> print(random.randint(1, 4))
1
>>> print(random.randint(1, 4))
2
>>> print(random.randint(1, 4))
3

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

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

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

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

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

sample(seznam, množství)
>>> seznam = [1, 2, 3, 4, 5]
>>> print(random.sample(seznam, 3))
[4, 1, 2]

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

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í díl vše a tuto sekci vše. Seriál 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 (1)

Článek pro vás napsal gcx11
Avatar
(^_^)

Jak se ti líbí článek?
Celkem (3 hlasů) :
55555


 


Miniatura
Předchozí článek
Vícerozměrná pole v Pythonu
Miniatura
Všechny články v sekci
Základní konstrukce jazyka Python
Miniatura
Následující článek
Cvičení k 8.-10. lekci Pythonu

 

 

Komentáře

Avatar

Člen
Avatar
:

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

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

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...
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 2 zpráv z 2.