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 [ ]: