Skriptování v Pythonu

V tomto tutoriálu jsou představeny základní funkce a objekty potřebné pro nejzákladnější skriptování v Pythonu.

Poznámky:

  • Komentáře v Pythonu se se dělají pomocí #. Cokoliv za tímto znakem až do konce řádku je komentář

In [1]:
a = 1 # tohle je komentar
  • V Jupyter notebook (nástroj v kterém je tento tutoriál vytvořen) každý blok kódu ukončení proměnnou nebo výrazem vytiskne obsah této proměnné. Toho je v tomto tutoriálu využívano. Následuje příklad:

In [2]:
a = 1 # tady si vytvorim promennou
a # tohle vytiskne hodnotu bez uziti prikazu print


Out[2]:
1

List

List je pravděpodobně nejznámější kontejner na data v jazyce Python. Položky v listu se můžou opakovat a mají pořadí položek dané při vytvoření listu. Položky v listu je možné měnit, mazat a přidávat. Následují příklady.


In [3]:
[1, 1, 2] # list celych cisel, polozka 1 se opakukuje


Out[3]:
[1, 1, 2]

In [4]:
["abc", 1, 0.5] # list obsahujici ruzne datove typy


Out[4]:
['abc', 1, 0.5]

In [5]:
[] # prazdny list


Out[5]:
[]

In [6]:
[[1,2], "abc", {1, "0", 3}] # list obsahujici take dalsi listy


Out[6]:
[[1, 2], 'abc', {'0', 1, 3}]

In [7]:
[1, "a", 2] + [5, 3, 5] # spojeni dvou listu


Out[7]:
[1, 'a', 2, 5, 3, 5]

In [8]:
[1, 2, 3]*5 # opakovani listu


Out[8]:
[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

Indexování a porcování

V Pythonu se pro indexování užívají hranaté závorky []. Symbol : zastupuje všechny položky v daném rozsahu. Indexuje se od 0. Indexování a porcování listu je ukázáno na nasledujících příkladech.


In [9]:
a = ["a", "b", "c", "d", "e", "f", "g", "h"] # ukázkový list

In [10]:
a[3] # vrati objekt z indexem 3 (ctvrty objekt)


Out[10]:
'd'

In [11]:
a[:2] # vrati prvni dva objekty


Out[11]:
['a', 'b']

In [12]:
a[3:] # vrati vse od objektu 3 dal


Out[12]:
['d', 'e', 'f', 'g', 'h']

In [13]:
a[2:5] # vse mezi objekty s indexy 2 a 5


Out[13]:
['c', 'd', 'e']

In [14]:
a[-3] # treti objekt od konce


Out[14]:
'f'

In [15]:
a[0:-1:2] # kazdy druhy objekt od zacatku do konce


Out[15]:
['a', 'c', 'e', 'g']

In [16]:
a[::2] # kratsi ekvivalent predchoziho prikladu


Out[16]:
['a', 'c', 'e', 'g']

In [17]:
b = [[1, 2, 3], [4, 5, 6]] # priklad vnorenych listu

In [18]:
b[1] # vraci druhy list


Out[18]:
[4, 5, 6]

In [19]:
b[0][0:2] # vraci prvni dve polozky z druheho listu


Out[19]:
[1, 2]

Přepisování, přidávání, vkládání a mazání položek z listu

Ukázáno na následujících příkladech.


In [20]:
a = ["a", "b", "c", "d"]

In [21]:
a[2] = "x" # prepsani objektu s indexem 2
print(a)


['a', 'b', 'x', 'd']

In [22]:
a.append("h") # pridani objektu h na konec
print(a)


['a', 'b', 'x', 'd', 'h']

In [23]:
a.insert(2, "y") # pridani objektu y na pozici 2
print(a)


['a', 'b', 'y', 'x', 'd', 'h']

In [24]:
del a[2] # odebere objekt na pozici 2
print (a)


['a', 'b', 'x', 'd', 'h']

Podmínka If, else, elif

Podmínky slouží k implementaci logiky. Logika operuje s proměnnou bool, která nabývá pouze hodnot True nebo False.

Výrazy a jejich vyhodnocení

Následuje ukázka vyhodnocení pravdivosti několika výrazů.


In [25]:
a = 1
a == 1


Out[25]:
True

In [26]:
a == 1


Out[26]:
True

In [27]:
not a == 1


Out[27]:
False

In [28]:
a > 1


Out[28]:
False

In [29]:
a >= 1


Out[29]:
True

In [30]:
1 in [1, 2]


Out[30]:
True

In [31]:
not (1 in [1, 2]) == (not 1 > 0)


Out[31]:
True

Podmínky a jejich vyhodnocení

Podmínka if testuje, zda výraz pravdivé hodnoty - pokud ano, podmínka vykoná svůj kód. Následuje příklad.


In [32]:
fruit = "apple"
color = "No color"

if fruit == "apple":
    color = "green"
    
color


Out[32]:
'green'

Podmínka else umožňuje nastavit alternativní kód pro případ kdy podmínka if není splněna. Příklad následuje.


In [33]:
fruit = "orange"

if fruit == "apple":
    color = "red"
else:
    color = "orange"

color


Out[33]:
'orange'

Podmínka elif umožňuje zadat více podmínek pro případ nesplnění podmínky if. Podmínek elif je možné umístit více za jednu podmínku if. Příklad následuje.


In [34]:
fruit = "apple"

if fruit == "apple":
    color = "red"
elif fruit == "orange":
    color = "orange"
elif fruit == "pear":
    color = "green"
else:
    color = "yellow"
    
color


Out[34]:
'red'

Smyčky

Iterace je jedna z nejčastější operací v programování. Následující ukázky se vztahují k rovnici

$\forall i \in \{2,\ldots,9\}.\ a_i = a_{i-1} + a_{i-2}$.

For smyčka

For smyčka je navržena pro iterování přes předem daný iterovatelný objekt. Příklad následuje.


In [35]:
a = [] # list na vysledky
a.append(1) # prvni pocatecni podminka
a.append(1) # druha pocatecni podminka
for i in [2, 3, 4, 5, 6, 7, 8]: # rozsah pres ktery iterovat
    a.append(a[i-1] + a[i-2]) # pridavani vypoctenych polozek do listu
print(a)


[1, 1, 2, 3, 5, 8, 13, 21, 34]

Vylepšení předchozího příkladu následuje.


In [36]:
a = [0]*9 # list na vysledky
a[0:2] = [1, 1] # pocatecni podminky
for i in range(2,9): # fukce range
    a[i] = a[i-1] + a[i-2] # realizace vypoctu
print(a)


[1, 1, 2, 3, 5, 8, 13, 21, 34]

V případě že je potřeba přerušit smyčku před koncem, je možné použít příkaz break.

While smyčka

Tato smyčka iteruje dokud není splněna podmínka. Příklad následuje.


In [37]:
a = [0]*9 
a[0:2] = [1, 1]
i = 2 # nastaveni pomocne promenne
while i < 9: # iteruj dokud pomocna promenna nesplni podminku
    a[i] = a[i-1] + a[i-2]
    i += 1 # pridej 1 k pomocne promenne
print(a)


[1, 1, 2, 3, 5, 8, 13, 21, 34]