Páte a šesté cvičení ... okomentované doplňkové příklady (Skupina 3)¶
Komentáře v jazyku Python¶
In [3]:
# první komentář
a = 1
b = 2 # druhý komentář
c = 3 # třetí komentář
In [1]:
# Zde nastavíme poloměr kruhu, spočítáme jeho obvod,
# a výslednou hodnotu vypíšeme pomocí funkce print.
"""
Komentář pomocí víceřádkového
textového řetězce
"""
import math
r = 1.5
obvod = 2 * math.pi * r
print("Obvod kruhu je", obvod)
Obvod kruhu je 9.42477796076938
Podmíněný příkaz¶
In [1]:
# Podmíněný příkaz
a = -10
if a > 0:
print("číslo je kladné")
print("číslo se rovná", a)
print("konec")
konec
In [9]:
# Větev else
vek = 73
if vek >= 65:
cena = 100
kategorie= "Zlevněná cena"
else:
kategorie = "Plná cena"
cena = 200
print("kategorie:", kategorie,", cena vstupenky:", cena, "Kč")
kategorie: Zlevněná cena , cena vstupenky: 100 Kč
In [10]:
# Podmínka může být složitější: použijeme operátory and, or, not
# Operátory pro porovnávání: ==, !=, >, <, >=, <=
vek = 73
skupinovaSleva = True
if vek >= 65 or vek < 18 or skupinovaSleva:
cena = 100
kategorie= "Zlevněná cena"
else:
kategorie = "Plná cena"
cena = 200
print("kategorie:", kategorie,", cena vstupenky:", cena, "Kč")
kategorie: Zlevněná cena , cena vstupenky: 100 Kč
In [8]:
# podmínky můžeme vnořovat do sebe:
vek = 63
skupinovaSleva = True
if vek >= 65 or vek < 18:
cena = 100
kategorie= "Zlevněná cena"
else:
kategorie = "Plná cena"
cena = 200
if skupinovaSleva:
cena *= 0.9
kategorie += "+ skupinova sleva"
kategorie += " + darek zdarma"
print("kategorie:", kategorie,"cena vstupenky:", cena, "Kč")
kategorie: Plná cena+ skupinova sleva + darek zdarma cena vstupenky: 180.0 Kč
In [7]:
# větve elif
vek = 40
skupinovaSleva = True
if vek >= 65:
cena = 100
kategorie= "Senior"
elif vek <= 6:
cena = 0
kategorie= "Dítě"
elif vek < 18:
cena = 120
kategorie= "Junior"
else:
kategorie = "Plná cena"
cena = 200
if skupinovaSleva:
cena *= 0.9
kategorie += " + skupinova sleva"
kategorie += " + darek zdarma"
print("kategorie:", kategorie,"cena vstupenky:", cena, "Kč")
kategorie: Plná cena + skupinova sleva + darek zdarma cena vstupenky: 180.0 Kč
In [12]:
# zřetězené porovnání:
x = 4
y = 60
if 2 <= x and x < y and y > 10:
print(x)
if 2 <= x < y > 10:
print(x)
4 4
In [10]:
# jako podmínka může sloužit i výraz, jehož hodnota lze implicitně převést na bool:
if 45.8-34: # True
print("ano")
if 0.0: # False
print("ne")
if "0": # True
print("nula")
ano nula
In [13]:
# čísla typu float neporovnáváme pomocí == a !=, ale lépe pomocí přibližného porovnání:
x = 0.999
if x == 1.0: # False
print("ano?")
if abs(x-1) < 0.01: # True
print("ano")
ano
Příkaz while
– cyklus se vstupní podmínkou¶
In [1]:
# program vypíše všechna čísla od 0 do 10 včetně:
n = 0
while n <= 10:
print(n)
n += 1
0 1 2 3 4 5 6 7 8 9 10
In [2]:
# to samé, výpis na jeden řádek:
n = 0
while n <= 10:
print(n, end= " ")
n += 1
0 1 2 3 4 5 6 7 8 9 10
In [3]:
# program vypíše mocniny dvojky 2^0 ... 2^10:
n = 0
while n <= 10:
print(2**n, end= " ")
n += 1
1 2 4 8 16 32 64 128 256 512 1024
In [11]:
# cykly a podmínky můžeme vnořovat:
# program vypíše jen lichá čísla z intervalu od 0 do 10 (včetně)
n = 0
while n <= 10:
if n % 2 :
print(n, end= " ")
n += 1
1 3 5 7 9
In [15]:
# cyklus můžeme ukončit příkazem break
n = 0
while n <= 10:
if n == 7:
break
print(n, end = " ")
n += 1
0 1 2 3 4 5 6
In [18]:
# while True + break
while True:
s = input("je konec?")
if s == "ano":
break
In [17]:
# program se může tzv. zacyklit (pokud podmínku neuděláme správně)
n = 0
while n >= 0: # nekonečný cyklus ... CHYBA
n += 1
print(n)
--------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) Cell In[17], line 3 1 # program se může tzv. zacyklit (pokud podmínku neuděláme správně) 2 n = 0 ----> 3 while n >= 0: # nekonečný cyklus ... CHYBA 4 n += 1 5 print(n) KeyboardInterrupt:
In [19]:
# součet čísel od 0 do 10:
n = 0
soucet = 0
while n <= 10:
soucet += n
n += 1
print("součet je", soucet)
součet je 55
In [20]:
# počet sudých čísel mezi 0 a 10:
n = 0
pocet_sudych = 0
while n <= 10:
if n % 2 == 0:
pocet_sudych += 1
n += 1
print("počet sudých je", pocet_sudych)
počet sudých je 6
Příkaz for
– cyklus s parametrem¶
In [2]:
# program vypíše všechna čísla od 0 do 10 včetně:
for n in range(11):
print(n, end= " ")
0 1 2 3 4 5 6 7 8 9 10
In [22]:
# udělej něco pětkrát:
for n in range(5):
print("ahoj")
ahoj ahoj ahoj ahoj ahoj
In [3]:
# program vypíše jen lichá čísla z intervalu od 0 do 10 (včetně)
for n in range(11):
if n % 2:
print(n, end= " ")
1 3 5 7 9
In [3]:
# program vypíše mocniny dvojky 2^0 ... 2^10
for n in range(11):
print(2**n, end= " ")
1 2 4 8 16 32 64 128 256 512 1024
In [12]:
# range se dvěma parametry (horní a dolní mez):
for n in range(7, 11):
print(n, end = " ")
7 8 9 10
In [14]:
# range se dvěma parametry (jedna mez, druhá mez, krok):
for n in range(30, 11, -1):
print(n, end = " ")
30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12
In [15]:
# Tabulka s násobilkou
for i in range (0,11):
for j in range(0,11):
print(f"{i*j:3}", end= " ")
print("")
0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 0 2 4 6 8 10 12 14 16 18 20 0 3 6 9 12 15 18 21 24 27 30 0 4 8 12 16 20 24 28 32 36 40 0 5 10 15 20 25 30 35 40 45 50 0 6 12 18 24 30 36 42 48 54 60 0 7 14 21 28 35 42 49 56 63 70 0 8 16 24 32 40 48 56 64 72 80 0 9 18 27 36 45 54 63 72 81 90 0 10 20 30 40 50 60 70 80 90 100
In [21]:
# Tabulka se součty
for i in range (0,11):
for j in range(0,11):
print(f"{i+j:3}", end= " ")
print("")
0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11 12 3 4 5 6 7 8 9 10 11 12 13 4 5 6 7 8 9 10 11 12 13 14 5 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 16 7 8 9 10 11 12 13 14 15 16 17 8 9 10 11 12 13 14 15 16 17 18 9 10 11 12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 20
In [23]:
# podmíněný výraz a ternární operátor <xxx> if <xxx> else <xxx>
import math
x = 67
# mám jednoduchý podmíněný příkaz:
if x >= 0:
h = math.sqrt(x)
else:
h = math.sqrt(-x)
print(h)
# mohu ho zapsat zkráceně takto:
h = math.sqrt(x) if x >= 0 else math.sqrt(-x)
print(h)
# jiný příklad:
print("jsi plnoletý") if x >= 18 else print("nejsi plnoletý")
# totéž jako:
if x >= 18:
print("jsi plnoletý")
else:
print("nejsi plnoletý")
8.18535277187245 8.18535277187245 jsi plnoletý jsi plnoletý
In [26]:
# příkazy break a continue
n = 100
while True:
# pokud je číslo sudé, přejdeme na další iteraci
if n % 2 == 0:
n += 1
continue
# vypíšeme číslo
print(n)
# pokud jsme vypsali číslo dělitelné 7, ukončíme cyklus
if n % 7 == 0:
break
n += 1
101 103 105
In [23]:
# součet čísel od 0 do 'n' (včetně) pomocí while cyklu:
n = int(input("Zadej číslo:"))
součet = 0
i = 1
while i <= n:
součet += i
i += 1
print(součet)
10
In [24]:
# součet čísel od 0 do 'n' (včetně) pomocí forcyklu:
n = int(input("Zadej číslo:"))
součet = 0
for i in range(n+1):
součet += i
print(součet)
10