Poznámky z prvního cvičení ZPRO doplněné o komentáře¶

  • komentáře v kódu jsou uvozené #
In [29]:
# JupyterLab, domovský adresář, práce se soubory
# Launcher - Notebook (.ipynb), Console, Other (Terminal, Text File, Python File - .py)
# Interpret ("Kernel") - když otevřeme notebook nebo konzoli, přiřadí se k němu nový interpret (proces),
#                      - v JupyterLabu se značí jako Kernel (mrkněte na záložku 'Kernel')

Aritmetické výrazy¶

In [1]:
# python jako kalkulačka (např. v konzoli)
4 + 3
7 - 4
5 * 6 - 7 / 2    # základní operace (pozor na prioritu a asocoativitu operátorů)
16 / (2 + 3)     # závorky
2.3 * -1.2       # desetinná a záporná čísla
2 ** 3           # mocnina
2 ** 0.5         # odmocnina
Out[1]:
-2.76
In [2]:
2 ** 1 / 2      # pozor, ** váže víc než / : 2 ** (1 / 2)
Out[2]:
1.0
In [40]:
10 - 3 - 4      # asociativita zleva: (10 - 3) - 4 
                # 10 - (3 - 4) 
                # 
Out[40]:
3
In [3]:
# rozšíření látky: další aritmetické operace
32 / 5           # dělení
32 // 5          # celočíselné dělení
32 % 5           # zbytek po celočíselném dělení
Out[3]:
2

Proměnné¶

In [3]:
a          # chyba (proměnná a není definovaná)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[3], line 1
----> 1 a          # chyba (proměnná ahoj není definovaná)

NameError: name 'a' is not defined
In [4]:
# proměnné
# a          # chyba
a = 10       # přiřadím hodnotu do proměnné, nic se nevypíše
In [5]:
a           # vypíšu hodnotu proměnné
Out[5]:
10
In [7]:
# změním hodnotu proměnné 
# vyhodnotí se výraz vpravo od '=', výsledek se vloží do proměnné
a = 1.5 * 3  
a
Out[7]:
4.5
In [8]:
# více příkazů v 1 buňce
#  provedou se všechny, ale vypíše se jen hodnota posledního výrazu
a = 12
b = 4
c = 7
a              
b
c
Out[8]:
7
In [9]:
c = 5 * b - a  
c
c = 2 * c
c
Out[9]:
16

Funkce print¶

In [11]:
# print ... funkce pro výpis hodnot na standardní výstup
print(4)
print(c)
print(4 / 10)   # vyhodnotí se výraz, vypíše se výsledek
print("ahoj")
4
16
0.4
ahoj
In [42]:
# funkce print může mít více parametrů, pak je vypíše vedle sebe 
# oddělené mezerou a nakonec odřádkuje
x = 4
y = 5 - 3
c = "pepa"
print(x)
print(4, 5, x, 7 * 0.4, (x / 3) ** y,  c)
x
4
4 5 4 2.8000000000000003 1.7777777777777777 pepa
Out[42]:
4
In [45]:
# výpis celých vět
print("Výsledek pro x = ", x, "je", x ** 2, ".")
Výsledek pro x =  4 je 16 .
In [15]:
# nápověda pro funkce pomocí klávesy TAB a dále "Help->Show Contextual Help"
In [8]:
# rozšíření látky: print pro pokročilé
x = 3
y = 4.3
z = -7
print(x, y, z)
print(x,y,z, sep=', ')  # oddělovač nebude ' ', ale ','
print(x,y,z, sep=', ', end = ' ... \n') # jiný ukončovací řetězec než odřádkování
3 4.3 -7
3, 4.3, -7
3, 4.3, -7 ... 

Chyby¶

In [23]:
# syntaktická chyba (chybí ukončovací závorka)
# prohlédněte si chybový výpis: na jakém řádku chyba nastala, popis chyby
# interpret se neukončí, pouze přeruší provádění buňky
print(x, y, c
  Cell In[23], line 4
    print(x, y, c
                 ^
_IncompleteInputError: incomplete input
In [17]:
# syntaktická chyba (chybí čárka)
print(x y)
  Cell In[17], line 2
    print(x y)
          ^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
In [22]:
# syntaktická chyba (překlep v názvu funkce)
Print(x, y)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[22], line 2
      1 # syntaktická chyba (překlep v názvu funkce)
----> 2 Print(x, y)

NameError: name 'Print' is not defined

Funkce input()¶

In [24]:
# input ... čtení uživatelského vstupu ve formě textu
x = input("Jak se jmenujes?")
In [25]:
# funkce input() vrací textový řetězec (string)
x
Out[25]:
'zuzka'
In [27]:
# celý příklad
x = input("Jak se jmenuješ?")
print("Jmenuješ se", x, ".")
Jmenujes se zuzka .
In [29]:
# funkci input můžeme volat i bez parametru
x = input()
x
Out[29]:
'478'
In [32]:
# funkce input() vždy vrací textový řetězec (string)
y = input("Zadej cislo")
print(y)
print (y * 5)  # projde, ale zřetězí stringy namísto násobení
y - 4          # zde program zhavaruje
412
412412412412412
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[32], line 5
      1 # funkce input() vždy vrací textový řetězec (string)
      2 y = input("Zadej cislo")
      3 print(y)
      4 print (y * 5)
----> 5 y - 4 # chyba

TypeError: unsupported operand type(s) for -: 'str' and 'int'
In [34]:
# doplnění ... proměnné a hodnoty mohou být různého typu 
# (číslo - int, float, bool, textový řetězec - str)
# stringy:
'ahoj lidi'
"ahoj lidi"
'78'
y
Out[34]:
'412'
In [46]:
# operátory se chovají jinak pro čísla a jinak pro stingy
a = "ahoj"
b = "světe"
a + b  # zřetězení
Out[46]:
'ahojsvěte'
In [22]:
3 * a  # násobné zřetězení
Out[22]:
'ahojahojahoj'
In [23]:
3 + a # chyba, operátor + není definován pro int a str
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[23], line 1
----> 1 3 + a # chyba, operátor není definován pro int a str

TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [36]:
# Funkce int() pro převod ze stringu na celé číslo:
y = int(y)
y - 4
Out[36]:
408
In [31]:
# notebook a buňky různého typu (zdrojový kód v Pythonu, markdown text)

Markdown buňka¶

  • takhle vypadá když ho NEnaformátuji ("buňku NEspustím")
  • mrkněte na Help -> Markdown Reference

Markdown buňka¶

  • takhle vypadá když ho naformátuji ("buňku spustím")
  • mrkněte na Help -> Markdown Reference
In [ ]:
# různé způsoby, jak pustit buňku (Shift+ENTER, Ctrl+ENTER, tlačítko, nabídka Run)  )
In [5]:
# příklad: zeptejte se uživatele na rok 
# vypište, kolik let uplynulo od daneho roku
# bude se hodit: input, int, print
In [37]:
s = input("Zadej rok")
rok = int(s)
vysledek = 2026 - rok
print("Od roku", s, "uplynulo", vysledek, "let.")
Od roku 1457 uplynulo 569 let.
In [38]:
# funkce input vrací string
rok = input("zadej rok")
rok
Out[38]:
'145'
In [ ]: