Na začátek si trochu procvičíme řetězce. Měj při ruce taháky!
Napiš program, který se zeptá na dva řetězce a zjistí, jestli je jeden obsažen ve druhém. Nebere přitom ohled na velikost písmen.
(na srazu jsme si ukazovali, jak testovat, zda řetězec obsahuje daný podřetězec)
Napiš program, který se zeptá na příjmení uživatelky/uživatele a zkusí podle něj uhodnout její/jeho pohlaví. To pak vypíše.
(Pohlaví není podle jména možné určit přesně – stačí zvládnout ta nejčastější česká příjmení.)
Najdi na internetu text své oblíbené písně, zkopíruj si ho do řetězce a zjisti, kolikrát je v něm použito písmeno K. (Velké nebo malé.)
Text by mělo jít jednoduše vyměnit za jiný.
Následující sada úkolů ti ukáže zajímavou vlastnost řetězců. Zpomal a zamysli se.
Co dělá tenhle kód?
for c in 'Ahoj světe!':
print(c)
Vymyslíš lepší jméno pro proměnnou c
z minulé úlohy?
Co dělá tenhle kód?
for c in 38:
print(c)
Najdi na internetu text své oblíbené písně, zkopíruj si ho do řetězce
a zjisti, kolik je v něm písmen.
Nepočítej mezery, znaky nového řádku a znaky
!"#$%&\'()*+,-./:;<=>?@[\]^_{|}~
.
Text písně by mělo jít jednoduše vyměnit za jiný.
Postup:
!
"
#
$
%
&
…:Bonus: Zkusíš najít v dokumentaci řetězcovou metodu, která ti pomůže spočítat jen alfanumerické znaky? Získáš stejný výsledek?
Máme tu i tradiční hru!
Vytvoř hru Šibenice podle následujícího popisu.
Počítač náhodně zvolí slovo (zatím třeba ze tří možností). Pro jednoduchost používej malá písmena a nepoužívej slova, ve kterých se stejné písmeno opakuje dvakrát (třeba čokoláda).
Zkus třeba slova: trávník
, stromek
, stavení
.
Výchozí stav je řetězec s tolika podtržítky, kolik je ve vybraném slově písmen.
Výchozí počet neúspěšných pokusů je nula.
Stále dokola:
index
a podprogram zamen
*
ze srazu.)Následující sada projektů ti ukáže různá použití cyklu for.
Pomocí cyklu for
a funkce range()
napiš program, který na terminál vypíše:
a
a
a
a
Pomocí cyklu for
napiš program, který vypíše:
Řádek 0
Řádek 1
Řádek 2
Řádek 3
Řádek 4
Jak jsi pojmenoval/a proměnnou, kterou jsi v minulém příkladu použil/a? Vymysli pro ni název, který nejlépe vystihuje, co proměnná obsahuje.
Je důležité proměnnou pojmenovat výstižně, jinak se v dalších projektech můžeš ztratit.
Pomocí cyklu for
napiš program, který vypíše:
0 na druhou je 0
1 na druhou je 1
2 na druhou je 4
3 na druhou je 9
4 na druhou je 16
Jak pojmenuješ proměnnou cyklu?
Pomocí cyklů for
a parametru end
pro print
napiš program, který postupně z jednotlivých 'X'
vypíše:
X X X X X
X X X X X
X X X X X
X X X X X
X X X X X
„Z jednotlivých 'X'
“ znamená, že nepoužiješ např. print('X X X X X')
.
Jak pojmenuješ proměnnou cyklu? A tu druhou?
Napiš program, který vypíše „tabulku“ s násobilkou:
0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16
Napiš program, který postupně z jednotlivých 'X'
vypíše:
X
X X
X X X
X X X X
Pomocí cyklu for
a příkazu if
napiš program, který vypíše následující řádky.
Funkci print
volej pouze uvnitř v cyklu:
první řádek
není první
není první
není první
Pomocí cyklů for
a příkazu if
napiš program, který z jednotlivých 'X'
a mezer vypíše:
X X X X X X
X X
X X
X X
X X
X X X X X X
Předchozí 4 programy s cyklem for
uprav tak, aby počet řádků (či velikost čtverce/trojúhelníku/tabulky) mohl zadat uživatel.
Teď několik programovacích oříšků pro dlouhé chvíle. Nemáš-li čas, přeskoč je.
Napiš program, který se zeptá na 3 čísla a zjistí, jestli je jejich součet větší než 10.
Napiš program, který načte číslo a zjistí, jestli je sudé.
Sudá čísla jsou beze zbytku dělitelná dvěma.
Napiš program, který vypíše čísla od jedné do 100, ale:
Máš-li rád/a matematiku* a nebojíš-li se výzvy, načti od uživatele číslo n a:
* t.j. nemáš-li rád/a matematiku, nedělej tenhle projekt :)