In [1]:
#komentáre sa píšu za mriežku
In [2]:
# - - - - 1. ZÁKLADNÉ OPERÁCIE A DÁTOVÉ TYPY - - - -
In [3]:
1+3
Out[3]:
4
In [4]:
2-4
Out[4]:
-2
In [5]:
3*2
Out[5]:
6
In [6]:
10/5
Out[6]:
2.0
In [7]:
# celé čísla python považuje automaticky za integery. ak chcete mať float, treba im dať desatinnú čiarku
In [8]:
# ak chcete zistiť akého typu je vaša hodnota, máme tu príkaz type
type(3)
Out[8]:
int
In [10]:
type(2.0)
Out[10]:
float
In [11]:
# výsledok delenia je VŽDY float (aj keď je celočíselný)
type(8/2)
Out[11]:
float
In [12]:
# modulo sa robí cez %
7%2
Out[12]:
1
In [13]:
# umocnenie dvoma hviezdičkami
2**10
Out[13]:
1024
In [14]:
# zátvorky fungujú tak, ako by sme očakávali
(2+5)*3
Out[14]:
21
In [15]:
# na porovnávanie tu máme True a False (pozor na velke pismena)
True
Out[15]:
True
In [16]:
1 == 5
Out[16]:
False
In [17]:
1 != 5
Out[17]:
True
In [20]:
(1 < 5) and (5 < 10)
Out[20]:
True
In [21]:
#podmienok môžete dať aj viac za seba
1 < 5 < 10
Out[21]:
True
In [22]:
(2<=3) or (3<=2)
Out[22]:
True
In [24]:
#string (text) sa píše do jednoitých, alebo dvojitých úvodzoviek. vypísať ho viete pomocou príkazu print
print("hello world")
hello world
In [25]:
# - - - - 2. PREMENNÉ, ZOZNAMY - - - -
In [26]:
# premenné definujeme tým, že im priamo priradíme hodnotu. python si sám domyslí, akého sme ju chceli mať typu
In [27]:
a = 7
In [64]:
# bunky sú iba súčasti jedného väčšieho programu. ak v jednej bunke definujete nejakú premennú, 
# môžete ju neskôr pomocou inej bunky zavolať. napríklad si ju môŽeme vypísať tiež pomocou print
print(a)
7
In [32]:
# list = usporiadaná množina prvkov, inak povedané zoznam
li = [1,2,3,4]
In [34]:
# k jednotlivým prvkom listu vieme pristúpiť, sú očíslované od 0
print(li[0])
print(li[1])
print(li[2])
print(li[3])
1
2
3
4
In [73]:
# list nemusí byť iba číselný
li2 = ["zemiak", 3.1, True, 17]
print(li2)
['zemiak', 3.1, True, 17]
In [36]:
# aj každý string je vlastne iba list znakov
la = "hello world"
print(la[1])
e
In [38]:
# k poslednému prvku sa dá pristúpiť aj poradovým číslom -1
print(li[-1])
print(li[-2])
4
3
In [61]:
# k listu vieme pridať ďalší prvok pomocou príkazu append
li.append(5)
li.append(6)
print(li)
[1, 2, 3, 4, 5, 6]
In [53]:
# tú istú bunku môžete spustiť aj viackrát. skúste tú poslednú spustiť znova.
# vykoná sa znova
In [62]:
# listy viete spájať pomocou +
la = [11,12,13]
print(li)
print(la)
print(li+la)
[1, 2, 3, 4, 5, 6]
[11, 12, 13]
[1, 2, 3, 4, 5, 6, 11, 12, 13]
In [63]:
# alebo pripojiť jeden list na druhý pomocou extend (vtedy sa jeden z nich zmodifikuje)
li.extend(la)
print(li)
[1, 2, 3, 4, 5, 6, 11, 12, 13]
In [84]:
# vieme volať aj časti listov pomocou syntaxe li[od:do]
print(li[2:4])
print(li[4:]) # prázdne miesto znamená že pôjde až dokonca
[3, 4]
[5, 6, 11, 12, 13]
In [85]:
# alebo li[od:do:veľkosť kroku]
print(li[0:7:3]) # od nultého po siedmy prvok, ale iba každý tretí
print(li[::2])   # každý druhý prvok
print(li[::-1])  # list v opačnom poradí
[1, 4, 11]
[1, 3, 5, 11, 13]
[13, 12, 11, 6, 5, 4, 3, 2, 1]
In [66]:
# - - - - 3. FOR, WHILE, IF - - - - 
In [67]:
# za podmienku ifu sa dáva dvojbotka. to, čo chceme aby sa vykonalo oddelíme odsadením.
# ak chceme vykonať viac príkazov, odsadíme ich všetky
if (5>1):
    print("5 je viac ako 1")
    print("naozaj!!")
5 je viac ako 1
naozaj!!
In [71]:
#kompletná syntax pre if:
moja_premenna = 5

if moja_premenna > 10:
    print("moja_premenna je viac ako 10.")
elif moja_premenna < 10:
    print("moja_premenna je menej ako 10.")
else:       
    print("moja_premenna is prave 10.")
moja_premenna je menej ako 10.
In [75]:
# for cyklus iteruje cez lists.
lo = [1,2,3,4]
for i in lo:
    print(i)
1
2
3
4
In [79]:
# aby sme to nemuseli robiť takto manuálne, vieme využiť príkaz range. vytvorí nám iterovátko od 0 po dané číslo
for i in range(4):
    print(i)
0
1
2
3
In [82]:
# môžeme si urobiť aj range (od, do)
for i in range(3,8):
    print(i)
3
4
5
6
7
In [83]:
# alebo range (od, do, veľkosť kroku)
for i in range(3,8,2):
    print(i)
3
5
7
In [86]:
# while je jednoduchý. += je skratka pre zvýšenie o 1
x = 0
while x < 4:
    print(x)
    x += 1
0
1
2
3
In [87]:
# - - - - 4. FUNKCIE  - - - -
In [89]:
# funkcie definujeme pomocou def. vystup ide do return.
# znova platí, že všetko odsadené je súčasťou funkcie. ak začnem písať od začiatku riadku,
# dostanem sa mimo funkcie
def scitanie(x,y):
    return x+y
a = 4
b = 7
print(scitanie(4,7))
11
In [90]:
#ak máte funkciu bez vstupu alebo výstupu, treba ju definovať a volať s prázdnymi zátvorkami
def pozdrav():
    print("nazdar")

pozdrav()
nazdar
In [91]:
# ako výstup funkcie môže byť aj viac premenných
a = 1
b = 2

def prehod_hodnoty(x,y):
    return y,x

print(prehod_hodnoty(a,b))
(2, 1)
In [93]:
# premenné vytvorené vnútri funkcie sú iné ako globálne premenné
x=5
def dosad_do_x(p):
    x = p
    print(x)

dosad_do_x(10)
print(x)
10
5
In [94]:
# ak chcete ovplyvniť globálnu premennú, treba jej to špeciálne oznámiť
x=5
def dosad_do_x(p):
    global x
    x = p
    print(x)

dosad_do_x(10)
print(x)
10
10
In [95]:
# - - - - 5. MODULY - - - 
In [96]:
# Moduly (modules) sú predvyrobené súbory rôznych funkcií, ktoré by sme mohli potrebovať.
# vieme si ich importovať a používať.
In [97]:
# vieme si importovať celý modul a volať cez neho funkcie ako názov_modulu.funkcia
import math
print(math.sqrt(16))
4.0
In [98]:
# ak je názov modulu príliš dlhý, alebo sa nám nehodí, môžeme si ho premenovať
import math as m
print(m.factorial(5))
120
In [99]:
# zoznam funkcií modulu nájdete pomocou dir
dir(math)
Out[99]:
['__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'acos',
 'acosh',
 'asin',
 'asinh',
 'atan',
 'atan2',
 'atanh',
 'ceil',
 'copysign',
 'cos',
 'cosh',
 'degrees',
 'e',
 'erf',
 'erfc',
 'exp',
 'expm1',
 'fabs',
 'factorial',
 'floor',
 'fmod',
 'frexp',
 'fsum',
 'gamma',
 'gcd',
 'hypot',
 'inf',
 'isclose',
 'isfinite',
 'isinf',
 'isnan',
 'ldexp',
 'lgamma',
 'log',
 'log10',
 'log1p',
 'log2',
 'modf',
 'nan',
 'pi',
 'pow',
 'radians',
 'sin',
 'sinh',
 'sqrt',
 'tan',
 'tanh',
 'tau',
 'trunc']
In [104]:
# ak potrebujeme iba pár konkrétnych funkcií z modulu, môžeme si ich importovať priamo
from math import pi, e
print(pi)
print(e)
3.141592653589793
2.718281828459045
In [106]:
# všimnite si, že ak importujeme konkrétne funkcie a premenné, nemusíme ich už volať ako math.pi
# teoreticky by ste mohli importovať všetko z matematiky naraz ako:
from math import * # (hviezdička znamená všetko)
# Ale vo všeobecnosti sa to neodporúča. iba ak sa vo vašom module veľmi dobre vyznáte.
# Problém je v tom, že moduly sú niekedy veľmi veľké, majú veľmi veľa funkcií a premenných,
# ktoré môžete omylom popremenovávať, keďže ich nepoznáte naspamäť a teraz neviete, ktoré mená sú
# obsadené a ktoré voľné.
# A vznikne z toho veľký bordel.