Okomentované poznámky k druhému cvičení (Skupina 1)¶
Python jako kalkulačka¶
- v konzoli i v notebooku
- matematické výrazy obsahující čísla, ( , ), operátory + , - , , / , * , // , % , proměnné
- pořadí vyhodnocení operátorů je celkem intuitivní (pokud nevím, mrknu se do dokumentace nebo použiji závorky)
- kód v buňce (nebo v konzoli) spustím např. pomocí
Shift enter
- interpret Pythonu pracuje ve smyčce:
- načti vstup - vyhodnoť výraz - vypiš výsledek
In [3]:
(2-45)*3
Out[3]:
-129
In [4]:
# ** ... mocnina
123**3
Out[4]:
1860867
In [8]:
127 / 3
Out[8]:
42.333333333333336
In [2]:
127 // 3 # celočíselné dělení
Out[2]:
42
In [2]:
127 % 3 # zbytek po celočíselném dělení
Out[2]:
42
In [1]:
print(127/3) # dělení
print(127//3) # celočíselné dělení
print(127%3) # zbytek po dělení
42.333333333333336 42 1
In [3]:
# Proměnná - umožňuje uchovat hodnotu pro další použití
x = 3.06-0.06
y = x + 6
In [17]:
print(x,y)
3.0 9.0
In [20]:
# hodnotu proměnné mohu měnit:
c = 8
c = c + 2
c = c / 3
c
Out[20]:
3.3333333333333335
In [21]:
# operátory mohu psát zkráceně:
c = 8
c += 2
c /= 3
c
Out[21]:
3.3333333333333335
In [22]:
# příklad: zkuste si spočítat v hlavě:
a = 14
a += 1
a /= 3
a %= 3
a
Out[22]:
2.0
In [26]:
# vícenásobné přiřazení:
x, y, z = 1.0, 3, "xzz"
print(x,y,z)
x = y = z = 6
print(x,y,z)
1.0 3 xzz 6 6 6
In [27]:
# názvy proměnných ... písmena, číslice, _, prvním znakem nesmí být číslice
2a = 6
Cell In[27], line 1 2a = 6 ^ SyntaxError: invalid decimal literal
In [4]:
a2 = 6
d_min = 1
In [5]:
# program je přehlednější, pokud proměnné mají smysluplné názvy
# pro psaní víceslovných názvů platí různé konvence
dívky = 12
chlapci = 16
celkem_dětí = dívky + chlapci
celkemDětí = dívky + chlapci
print(celkem_dětí)
28
In [32]:
# Každá proměnná má nějaký datový typ
# Typ proměnné zjistím pomocí funkce type()
x = "aaa"
type(x)
Out[32]:
str
In [33]:
# Textové řetězce (datový typ str)
s = "petr"
t = "klíč"
s+t
Out[33]:
'petrklíč'
In [34]:
3*s
Out[34]:
'petrpetrpetr'
In [35]:
# chyba
3 + s
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[35], line 1 ----> 1 3 + s TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [36]:
x= 3
In [37]:
# Logická (pravdivostní) hodnota (datový typ bool)
# operátory porovnání: == , != , < , > , >= , <=
# logické operátory and, or, not
x == 3
Out[37]:
True
In [38]:
x != 3
Out[38]:
False
In [39]:
x > 3
Out[39]:
False
In [40]:
(x > 2) and (x <= 10)
Out[40]:
True
In [41]:
(x > 2) or (x <= 10)
Out[41]:
True
In [42]:
(x > 2) and not (x <= 10)
Out[42]:
False
In [49]:
# Funkce print a formátovaný výstup:
x = 1/3
a = "ptakopysk"
print("Myslím si číslo",x, "a zvíře je",a,".")
print(f"Myslím si číslo {x:.2} a zvíře je {a}.")
Myslím si číslo 0.3333333333333333 a zvíře je ptakopysk . Myslím si číslo 0.33 a zvíře je ptakopysk.
In [50]:
# standarní vstup:
x = input()
print(x)
12
In [8]:
jmeno = input("Jak se jmenuješ?")
x = input("Jaký je rok?")
print("Jmenuješ se",jmeno, "a je rok", x)
Jmenuješ se Zuzka a je rok 2023
In [9]:
# pozor, funkce input vrací textový řetězec (str), pokud chci číslo, musím hodnotu tzv. přetypovat:
jmeno = input("Jak se jmenuješ?")
x = input("Jaký je rok?")
x = int(x)
# mohu napsat zkráceně:
#x = int(input("Jaký je rok?"))
zaDvaRoky = x + 2
print("Jmenuješ se", jmeno, "a je rok", x)
print("Za dva roky bude rok", zaDvaRoky)
Jmenuješ se Zuzka a je rok 2023 Za dva roky bude rok 2025
In [ ]: