#komentáre sa píšu za mriežku
# - - - - 1. ZÁKLADNÉ OPERÁCIE A DÁTOVÉ TYPY - - - -
1+3
2-4
3*2
10/5
# celé čísla python považuje automaticky za integery. ak chcete mať float, treba im dať desatinnú čiarku
# ak chcete zistiť akého typu je vaša hodnota, máme tu príkaz type
type(3)
type(2.0)
# výsledok delenia je VŽDY float (aj keď je celočíselný)
type(8/2)
# modulo sa robí cez %
7%2
# umocnenie dvoma hviezdičkami
2**10
# zátvorky fungujú tak, ako by sme očakávali
(2+5)*3
# na porovnávanie tu máme True a False (pozor na velke pismena)
True
1 == 5
1 != 5
(1 < 5) and (5 < 10)
#podmienok môžete dať aj viac za seba
1 < 5 < 10
(2<=3) or (3<=2)
#string (text) sa píše do jednoitých, alebo dvojitých úvodzoviek. vypísať ho viete pomocou príkazu print
print("hello world")
# - - - - 2. PREMENNÉ, ZOZNAMY - - - -
# premenné definujeme tým, že im priamo priradíme hodnotu. python si sám domyslí, akého sme ju chceli mať typu
a = 7
# 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)
# list = usporiadaná množina prvkov, inak povedané zoznam
li = [1,2,3,4]
# 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])
# list nemusí byť iba číselný
li2 = ["zemiak", 3.1, True, 17]
print(li2)
# aj každý string je vlastne iba list znakov
la = "hello world"
print(la[1])
# k poslednému prvku sa dá pristúpiť aj poradovým číslom -1
print(li[-1])
print(li[-2])
# k listu vieme pridať ďalší prvok pomocou príkazu append
li.append(5)
li.append(6)
print(li)
# tú istú bunku môžete spustiť aj viackrát. skúste tú poslednú spustiť znova.
# vykoná sa znova
# listy viete spájať pomocou +
la = [11,12,13]
print(li)
print(la)
print(li+la)
# alebo pripojiť jeden list na druhý pomocou extend (vtedy sa jeden z nich zmodifikuje)
li.extend(la)
print(li)
# 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
# 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í
# - - - - 3. FOR, WHILE, IF - - - -
# 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!!")
#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.")
# for cyklus iteruje cez lists.
lo = [1,2,3,4]
for i in lo:
print(i)
# 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)
# môžeme si urobiť aj range (od, do)
for i in range(3,8):
print(i)
# alebo range (od, do, veľkosť kroku)
for i in range(3,8,2):
print(i)
# while je jednoduchý. += je skratka pre zvýšenie o 1
x = 0
while x < 4:
print(x)
x += 1
# - - - - 4. FUNKCIE - - - -
# 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))
#ak máte funkciu bez vstupu alebo výstupu, treba ju definovať a volať s prázdnymi zátvorkami
def pozdrav():
print("nazdar")
pozdrav()
# 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))
# 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)
# 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)
# - - - - 5. MODULY - - -
# Moduly (modules) sú predvyrobené súbory rôznych funkcií, ktoré by sme mohli potrebovať.
# vieme si ich importovať a používať.
# vieme si importovať celý modul a volať cez neho funkcie ako názov_modulu.funkcia
import math
print(math.sqrt(16))
# 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))
# zoznam funkcií modulu nájdete pomocou dir
dir(math)
# 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)
# 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.