IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

10. diel - Knižnice math a random

V minulej lekcii, Viacrozmerné polia v Pythone , sme si ukázali, ako na funkcie a základy ošetrovanie chýb. Dnes sa v Python tutoriálu naučíme používať niektoré z knižníc, hlavne tú základnú matematickú.

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 ich vývoj bude pohodlnejšie a rýchlejšie.

import

Import knižníc (sprístupnenie knižnice) sa vykonáva pomocou nasledujúcej syntaxe:

Najlepší spôsob:

import nazev_modulu

Potom funkciu z modulu voláme rovnako, ako by to bola metóda modulu:

nazev_modulu.nazev_funkce()

Ak chceme len určitú funkciu, môžeme ju importovať takto:

from nazev_modulu import nazev_funkce

Potom stačí napísať len:

nazev_funkce()

Pre sprístupnenie všetkého z modulu:

from nazev_modulu import *

Toto používajte len ak viete, čo robíte ...

Možno použiť aj aliasy s nasledujúcou syntaxou:

import nazev_modulu as vlastni_nazev

Aliasy sa požívajú pre import modulov z balíčkov. Balíčky sú zoskupenia viacerých modulov.

Moduly sa importujú na začiatku programu!

math

Ako prvý si predstavíme matematickú knižnicu Pythone - math. Poďme ju naimportovať:

import math

Modul math obsahuje dve konštanty - pí a Eulerovo Číslo:

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

Modul nám tiež poskytuje veľmi užitočné funkcie (metódy) pre počítanie. Najzákladnejšie funkcie sú:

sin()

Vráti hodnotu funkcie sínus pre uhol v radiánoch, ktorý odovzdáme ako parameter:

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

cos()

Vráti hodnotu funkcie cosinus pre uhol v radiánoch, ktorý odovzdáme ako parameter:

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

tan()

Vráti hodnotu funkcie cosinus pre uhol v radiánoch, ktorý odovzdáme ako parameter:

asin()

Vráti uhol v radiánoch pre danú hodnotu, ktorý vznikla z funkcie sínus. Opačná funkcie k sinus, hodnotu odovzdáme v parametri.

acos()

Vráti uhol v radiánoch pre danú hodnotu, ktorý vznikla z funkcie cosinus. Opačná funkcie k cosinus, hodnotu odovzdáme v parametri.

atan()

Vráti uhol v radiánoch pre danú hodnotu, ktorý vznikla z funkcie tangens. Opačná funkcie k tangens, hodnotu odovzdáme v parametri.

degrees()

Vráti hodnotu uhla prevedenú z radiánov na stupne. Parametrom je uhol v radiánoch:

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

ceil()

Zaokrúhli číslo na najbližšie celé číslo smerom nahor:

import math
print(math.ceil(3.1))

floor()

Zaokrúhli číslo na najbližšie celé číslo smerom nadol:

import math
print(math.floor(3.1))

fabs()

Vráti absolútnu hodnotu desatinného čísla. Vstavaná funkcia abs() vracia absolútnu hodnotu celého čísla.

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

factorial()

Vráti faktoriál daného čísla. Ak je hodnota nečíselné alebo záporná, vyvolá výnimku ValueError:

import math
print(math.factorial(4))

pow()

Umocní prvé odovzdané číslo na druhé číslo:

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

sqrt()

Vráti druhú odmocninu z daného čísla:

import math
print(math.sqrt(16))

hypot()

Vráti Eukleidovskom vzdialenosť, tj. math.sqrt(x*x + y*y):

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

log()

Vráti logaritmus čísla o základe, ak je zadaný. Ak nie, vráti hodnotu prirodzeného logaritmu (so základom Eulerova čísla).

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

log10()

Vráti logaritmus o základe 10 z daného čísla:

import math
print(math.log10(1000))

log2()

Vráti logaritmus o základe 2 z daného čísla:

import math
print(math.log2(32))

A to bol výpočet základných funkcií modulu math. Ak chcete ďalšie, stačí napísať help(math) - pozor - modul math musí byť importovaný!

random

Ako druhý modul si predstavíme random, poďme ho naimportovať:

import random

Modul random nám poskytuje mnoho užitočných funkcií. Tieto funkcie nám umožňujú generovať pseudo-náhodné čísla, miešať zoznamy, vyberať z nich náhodne prvky a mnoho ďalších. My si predstavíme základné z nich.

randint()

Vyberie náhodné číslo v rozsahu od prvé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()

Vyberie náhodný prvok sa zoznamu (alebo iné kolekcie):

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

shuffle()

Zamieša poradie prvkov v zozname. Možno použiť aj iný dátový typ, ktorý podporuje priraďovanie. (Zatiaľ iné okrem zoznamu nepoznáme :) )

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

sample()

Náhodne vyberie množstvo prvkov zo zoznamu. Možno použiť aj inú kolekciu. (Zatiaľ inú okrem zoznamu nepoznáme :) )

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

Easter eggs

Na záver sekcie sa základy Pythone sa pozrieme na veľkonočné vajíčka. To sú skryté a zábavné funkčnosti, ktoré do jazyka schovali jeho tvorcovia. Python ich pár obsahuje :) Skúste si napísať:

1:

import this

2:

import antigravity

3:

import __hello__

4:

from __future__ import braces

5:

Ďalej si môžete v interaktívnej konzole upraviť:

'>>> '

a

'... '

pomocou:

>>> import sys
>>> sys.ps1 = "--> "
--> sys.ps2 = "--- " #nasleduje príklad
--> if True:
---     print("Hello World!")
---
--> Hello World!

Tak a to je pre dnešné lekciu všetko a túto sekciu všetko. Kurz teraz pokračuje v sekcii Základy objektovo orientovaného programovania v Pythone. Nabudúce si teda predstavíme objektový svet a pochopíme veľa vecí, ktoré nám boli až doteraz utajované.

V budúcej lekcii, Najčastejšie chyby Python nováčikov - Vieš pomenovať premenné? , si ukážeme najčastejšie chyby začiatočníkov v Pythone ohľadom pomenovanie premenných.


 

Predchádzajúci článok
Viacrozmerné polia v Pythone
Všetky články v sekcii
Základné konštrukcie jazyka Python
Preskočiť článok
(neodporúčame)
Najčastejšie chyby Python nováčikov - Vieš pomenovať premenné?
Článok pre vás napísal gcx11
Avatar
Užívateľské hodnotenie:
4 hlasov
(^_^)
Aktivity