
Programování v Pythonu
« Na přehled témat
Python je v současnosti nejoblíbenější programovací jazyk pro výuku programování. Není to však jen výukový jazyk, je také široce prakticky používaný. Na Umíme programovat používáme Python 3.
Pokud chcete v Pythonu více programovat, doporučujeme nainstalovat si ho na vlastní počítač. Nicméně na to, abyste se naučili základy programování v Pythonu, vystačíte i s prohlížečem. Na Umíme programovat nabízíme spoustu cvičení a příkladů, které můžete řešit přímo na stránkách:
- Pro úplné začátky zkuste cvičení Rozhodovačka, kde pouze vybíráte z nabízených možností. Jak se trochu rozcvičíte, můžete zkusit Výstup programu, kde píšete odpověď na klávesnici.
- Ve cvičení Porozumění programům máte k dispozici vypracované příklady. Na nich se můžete podívat, jak programy v Pythonu vypadají. Ke každému příkladu je připravena série kontrolních otázek, pomocí kterých si můžete prověřit, jak programu rozumíte.
- Především si však zkuste samostatné programování. K tomu slouží cvičení Programování v Pythonu a Python želva. Program píšete přímo v prohlížeči, kde si ho můžete i spustit a hlavně automaticky otestovat, zda je správně.
Vysvětlení mi pomohlo Vysvětlení mi nepomohlo

Rozhodovačka
Rychlé procvičování výběrem ze dvou možností.

Proměnné a číselné výrazy v Pythonu (lehké)
57 Zadání
Typicky zabere: 7 min
Ukázka
Jak zjistit zbytek čísla x po dělení číslem y?Co vypíše program?x = 13
x = x + 5
print(x)
Je výsledkem x / y vždy celé číslo?
Proměnné a číselné výrazy v Pythonu (střední)
49 Zadání
Typicky zabere: 10 min
Ukázka
Co vypíše program?x = 5
y = 2
print(x // y)
Jak oříznout naměřený čas na maximálně 60 sekund a uložit ho do proměnné clipped
?Spočítá příkaz V = IR
napětí při proudu I
a odporu R
?
Logické výrazy v Pythonu (lehké)
74 Zadání
Typicky zabere: 9 min
Ukázka
Doplňte test na sudost:x % 2 ___ 0
Jak v Pythonu zapisujeme logickou spojku 'a zároveň' (konjunkce)?x < 13

Logické výrazy v Pythonu (střední)
71 Zadání
Typicky zabere: 13 min
Ukázka
Vyhodnoťte:(4 > 3) == (5 > 5)
Která logická spojka má při vyhodnocování větší prioritu?Jsou tyto výrazy ekvivalentní?x < y or x == y
x <= y

Logické výrazy v Pythonu (těžké)
68 Zadání
Typicky zabere: 16 min
Ukázka
Která operace ma vyšší prioritu?Co vypíše program?x = 7
t = "pes"
a = (x > 10) or not (t == "prase")
print(a)
Jsou tyto výrazy ekvivalentní?x < 3 and x < 6
x < 6

Proměnné a výrazy: mix (lehké)
Typicky zabere: 6 min

Proměnné a výrazy: mix (střední)
Typicky zabere: 8 min

Podmíněný příkaz (if) v Pythonu (lehké)
43 Zadání
Typicky zabere: 11 min
Ukázka
Co vypíše program?a = 4
if a > 5:
if a < 10:
print("Petr")
else:
print("Pavel")
Existuje hodnota n
, pro kterou se vypíše okurka?if n >= 0:
print("mrkev")
elif n <= 0:
print("celer")
else:
print("okurka")
Kolik jmen vypíše tento program?a = 4
if a < 2:
print("Petr")
else:
print("Pavel")
if a < 10:
print("Jana")
else:
print("Martina")

Podmíněný příkaz (if) v Pythonu (střední)
37 Zadání
Typicky zabere: 19 min
Ukázka
Může býtn
po provedení následujícího podmíněného příkazu sudé?if n % 2 == 0:
n += 1
else:
n += 2
Existuje x
, pro které se vypíše mrkev i celer?if x < 0:
x += 10
print("mrkev")
elif x > 0:
print("celer")
Ovlivní hodnota n
, kolik slov se vypíše?if n < 10:
if n % 2 == 0:
print("mrkev")
else:
print("celer")
else:
print("okurka")

Cyklus for v Pythonu (lehké)
45 Zadání
Typicky zabere: 12 min
Ukázka
Kolik čísel se vypíše?for x in range(5, 95):
print(x)
Co vypíše program?for i in range(3):
print('X')
print('Y')
Co vypíše program?n = 5
for i in range(n):
print(i, n-i)

Cyklus for v Pythonu (střední)
37 Zadání
Typicky zabere: 16 min
Ukázka
Co vypíše program?a = 0
for i in range(5):
a = a + 1
print(a)
Zjednodušte program:print(1)
print(2)
print(3)
print(5)
print(6)
Která čísla dává range(10, 6)
?
Cyklus while v Pythonu (lehké)
44 Zadání
Typicky zabere: 12 min
Ukázka
Co vypíše program?x = 5
while x < 10:
print(x)
x = x + 1
While cyklus (na rozdíl od for cyklu) používáme typicky v případě, kdy počet opakování cyklu dopředu:Kolikrát se vypíše celer?x = 5
while x < 10:
x += 1
print("celer")

Cyklus while v Pythonu (střední)
38 Zadání
Typicky zabere: 24 min
Ukázka
Zacyklí se program?a, b = 0, 50
while a != b and a + b > 0:
a += 1
b -= 10
Vypíše se celer?x = 1
while x < 100:
print("mrkev")
x *= 2
while x <= 100:
print("celer")
x *= 2
Vypíše se celer?x = 10
while x > 0:
print("mrkev")
x = x // 2
if x == 0:
print("celer")

Funkce v Pythonu (lehké)
51 Zadání
Typicky zabere: 12 min
Ukázka
Co vypíšef('2 + 1')
?def f(x):
print(x)
Zjednodušte funkci:def test(a, b):
if a > 0:
return True
elif b > 0:
return True
else:
return False
Co vypíše program?x = "celer"
def cook(x):
print(x)
cook("mrkev")

Funkce v Pythonu (střední)
41 Zadání
Typicky zabere: 15 min
Ukázka
Kolik jef(1) + f(2)
?def f(x):
return x ** 2
Je kód správně?def increase(x):
print(return x + 1))
Vypíše se celer?def test(x):
return x + 1
print("celer")
test(3)

Funkce v Pythonu (těžké)
45 Zadání
Ukázka
Je kód správně?def double(x):
return print(2 * x)
print(double(4))
Co vypíše program?def print_mean(a, b):
return (a + b) / 2
print_mean(10, 20)
Může f(x, y) vrátit 42?def f(x, y):
y = min(20, y)
x = g(y, x)
return x + y
def g(a, b):
return a

Řízení výpočtu: mix (lehké)
Typicky zabere: 10 min

Řízení výpočtu: mix (střední)

Přehled datových typů (lehké)
73 Zadání
Typicky zabere: 6 min
Ukázka
Určete typ:"a"
Určete typ:-3
Pravda, nebo nepravda?[1, 2] == (1, 2)

Přehled datových typů (střední)
64 Zadání
Typicky zabere: 13 min
Ukázka
Dojde k chybě?{(1, [2]): 3}
Dojde k chybě?a = {1, 2, 3}
print(a[1])
Dojde k chybě?a = (1, 0, 3)
a[1] = 2

Řetězce v Pythonu (lehké)
49 Zadání
Typicky zabere: 6 min
Ukázka
Pravda nebo nepravda?'lev' in 'zeleninova polevka'
Co vypíše program?text = "sova"
text = text.upper()
print(text[2])
Jakým způsobem vypíšeme text převedený na velká písmena?
Řetězce v Pythonu (střední)
42 Zadání
Typicky zabere: 10 min
Ukázka
Určete hodnotu výrazu:chr(ord("a") + 1)
Vytvořte číslo 42.s = '17 42 35'
Vytvořte smajlíka :)s = ':('

Řetězce v Pythonu (těžké)
43 Zadání
Typicky zabere: 16 min
Ukázka
Jaký je typ proměnné x?w = 'mrkev paprika okurka'
for x in range(len(w)):
print(x)
Kde se ukrývá celer?x = 'diky cele rodine'
Jak zjistit zda slovo w obsahuje písmeno m nebo n?
Seznamy v Pythonu (lehké)
65 Zadání
Typicky zabere: 7 min
Ukázka
Jak vytvořit seznam jednociferných čísel?Jak přidat celer do seznamufood
?Co vypíše program?mylist = [4, 2, 8, 1]
print(8 in mylist)

Seznamy v Pythonu (střední)
66 Zadání
Typicky zabere: 10 min
Ukázka
Pravda nebo nepravda?sum([3, 9, 16, 14]) == 42
Dojde k chybě?a = [0, 0, 0]
a[len(a)] = 1
Zjednodušte program:for i in range(len(a)):
print(i, a[i])

Seznamy v Pythonu (těžké)
69 Zadání
Typicky zabere: 20 min
Ukázka
Určete hodnotu seznamua
:a = [[4]]
a.append(2)
Najděte jedničku:a = [[1], [0, 0]]
Pravda nebo nepravda?x = [1, 4, 1]
x[-1] == x[1]

Slovníky v Pythonu (lehké)
21 Zadání
Typicky zabere: 8 min
Ukázka
Co vypíše program?pets = {"Alice": "dog",
"Bob": "cat",
"Cyril": "parrot"}
pets["Peter"] = "horse"
print(len(pets))
Co vypíše program?mydict = {}
print(len(mydict))
Co vypíše program?pets = {"Alice": "dog",
"Bob": "cat",
"Cyril": "parrot"}
pets["Bob"] = "dog"
for x in pets.values():
print(x)

Objekty v Pythonu (střední)
13 Zadání
Typicky zabere: 8 min
Ukázka
Co vypíše program?class Animal:
def __init__(self, name, legs):
self.name = name
self.legs = legs
animals = [Animal("dog", 4),
Animal("chicken", 2),
Animal("cat", 4),
Animal("fish", 0)]
for x in animals:
if x.legs > 2:
print(x.name)
Co vypíše program?class X:
def __init__(self, a):
self.a = a
def f(self, a):
print(a)
x = X(5)
x.f(2)
Co vypíše program?class Person:
def __init__(self, name):
self.name = name
self.hobbies = []
def add_hobby(self, hobby):
self.hobbies.append(hobby)
alice = Person("Alice")
alice.add_hobby("reading")
alice.add_hobby("swimming")
tom = Person("Tom")
tom.add_hobby("sleeping")
print(alice.hobbies)

Datové typy: mix (lehké)
Typicky zabere: 6 min

Pexeso
Hledání dvojic, které k sobě patří.

Proměnné a číselné výrazy v Pythonu (střední)
6 Zadání
Typicky zabere: 6 min
Ukázka
x = y**2x = 5x = 25
Logické výrazy v Pythonu (střední)
4 Zadání
Ukázka
True or x
not x>5
x < 3 and x < 6

Přehled datových typů (střední)
6 Zadání
Ukázka
strintLogické výrazy v Pythonu
x != 5 |
| x <= 5 |
| x == 5 |
|
x < 5 |
| x >= 5 |
| True |
|

Výstup programu
Cvičení, ve kterém dostanete krátký program a máte určit, co vypíše.

Proměnné a číselné výrazy v Pythonu (lehké)
29 Zadání
Typicky zabere: 5 min
Ukázka
x = 3
y = 2
x = x + y
x = x + y
print(x)
x = 2
y = 3
x = y
y = x
print(x, y)
x = 13
x = x + 5
print(x)

Podmíněný příkaz (if) v Pythonu (lehké)
13 Zadání
Typicky zabere: 6 min
Ukázka
a = 5
b = 3
if a < 4:
b = b + 1
print(a, b)
a = 5
b = 3
if a < 4:
b = b + 1
else:
b = b - 1
print(a, b)
t = "pes"
if t == "prase":
print(t)
else:
print(t, t)

Řetězce v Pythonu (lehké)
21 Zadání
Typicky zabere: 4 min
Ukázka
text = "Millennium Falcon"
print(text[len(text)-1])
text = "prase"
print(text[1])
text1 = "5"
text2 = "8"
print(text1+text2)

Seznamy v Pythonu (střední)
21 Zadání
Typicky zabere: 5 min
Ukázka
mylist = [3, 2, 5]
print(mylist[0])
mylist = ['x', 'a', 'c', 'e', 'y']
print(mylist[-1])
mylist = [8, 3, 45]
mylist.insert(0, 7)
print(mylist[0])

Slovníky v Pythonu (střední)
18 Zadání
Typicky zabere: 6 min
Ukázka
mydict = {}
print(len(mydict))
morse = {'A': '.-', 'B': '-...', 'C': '-.-.',
'D': '-..', 'E': '.', 'F': '..-.'}
print('...' in morse.values())
morse = {'A': '.-', 'B': '-...', 'C': '-.-.',
'D': '-..', 'E': '.', 'F': '..-.'}
print(len(morse))

Datové typy: mix (střední)
60 Zadání
Typicky zabere: 4 min
Skládá se z:
Řetězce v PythonuSeznamy v PythonuSlovníky v Pythonu
Porozumění
Prohlédněte si vypracované řešení příkladů v Pythonu či ukázkové modely. Pro každý příklad dostanete několik kontrolních otázek, které otestují vaše porozumění problému.
Vnořené cykly
Vnořené cykly jsou typický zdroj problémů pro začátečníky v programování. Prozkoumejte několik typických ukázek jejich využití.
Funkce v Pythonu
Tato sada s motivem přípravy jídla vám pomůže prozkoumat záludnosti správného využití funkcí.
Řetězce v Pythonu
Řešené příklady na práci s řetězci v Pythonu.
Seznamy v Pythonu
Řešené příklady na práci se seznamy v Pythonu.
Slovníky v Pythonu
Řešené příklady na práci se slovníky v Pythonu.
Objekty v Pythonu
Řešené příklady na práci s objekty v Pythonu.
Počítání s čísly
Řešené příklady na práci s čísly v Pythonu.

Python želva
Naprogramujte želvu, aby kreslila pěkné obrázky. Želva rozumí pokynům jako je „jdi dopředu“ či „zatoč doprava“. Programy tvoříte pomocí jazyka Python 3. Pro rozcvičení můžete použít verzi želví grafiky v grafickém programování.
Zájemci najdou více informací o želví grafice v knížce od jednoho z autorů projektu Umíme programovat.
Základy
Pro začátek využijeme jen základní příkazy pro posun a zatáčení a nakreslíme pár jednoduchých obrázků.
Opakování
Nyní využijeme opakování (pomocí for cyklu v Pythonu), což nám umožní snadno vykreslit třeba různé geometrické útvary.
Proměnné
Nyní přidáme proměnné, které nám umožní kreslit obrazce různé velikosti či zatáčet o proměnlivý úhel. To se hodí třeba na pěkné spirály.
Funkce
Želvu můžeme učit nové příkazy – na tom si dobře procvičíme funkce v Pythonu a navíc již vykreslíme zajímavé obrázky.
Rekurze a fraktály
Náročné, bonusové téma pro pokročilé. Za využití rekurze můžeme pomocí želví grafiky kreslit elegantní fraktály. Jde to často krátkým programem, který však vůbec není lehké vymyslet...
Proměnné a podmínky
V této sadě se želva bude rozhodovat podle aktuální hodnoty proměnných.
Záludné
Úlohy, které jdou vesměs řešit krátkým programem, je ale potřeba k nim přistoupit tím správným způsobem.
Správné úhly
Na následující obrázky nepotřebujeme žádné složité programy, musíme ale správně určit úhly. Zkuste správnou velikost úhlů vymyslet, ne jen náhodně tipovat.
Zajímavé vzory
Želví grafikou jdou kreslit různé zajímavé vzory. Často to jde snadno, jen je potřeba se na obrázek správně podívat.

Programování v Pythonu
Programování přímo v prohlížeči, s automatickým vyhodnocením správnosti programu. Cvičení používá programovací jazyk Python 3.
V tomto cvičení píšete programy, které pracují s textem a čísly. Pokud chcete obrázky, zkuste cvičení Python želva.
Proměnné a číselné výrazy v Pythonu
Logické výrazy v Pythonu
Podmíněný příkaz (if) v Pythonu
Cyklus for v Pythonu
Úpravy programů
V této sadě máte k dispozici připravené programy, které je potřeba pochopit a mírně upravit.
Záludné
Tato sada obsahuje mix příkladů na různá témata. Příklady jdou stále řešit docela krátkými programy, ale mohou již potrápit trochu více než příklady v ostatních sadách.
Řetězce v Pythonu
Seznamy v Pythonu
Počítání s čísly
V této sadě si procvičíme počítání s čísly: od jednoduchých výpisů až po některé klasické algoritmy.
Textové obrázky
V této sadě budeme vykreslovat „obrázky“ pomocí textových znaků (někdy označováno jako „ASCII art“). Tyto příklady slouží především pro procvičení vnořených cyklů.

Programátorská úkolovka
V této úloze je úkolem určit tajný kód pomocí výpočtu. Jak výpočet provedete, záleží jen na vás, jako odpověď zadáváte pouze výsledný kód. Úlohy jsou připraveny tak, aby byly snadno řešitelné v programovacím jazyku Python. Můžete ale klidně použít i jiné programovací jazyky.