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.
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ů procvičuje různá použití cyklu for
.
Úkoly na sebe navazují, řeš je postupně.
Pomocí cyklu for
a funkce range()
napiš program, který 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 nejlépe pojmenovat proměnnou pro minulý příklad? 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 úkolech 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 každý print
vypíše maximálně jedno X
.
Nepoužívej tedy např. print('X X X X X')
ani print('X ' * 5)
.
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
K oddělení sloupců použij znak tabulátoru.
Tabulka je podobná předchozí, jen má v každé "buňce" hodnotu "číslo řádku × číslo sloupce".
Napiš program, který postupně z jednotlivých 'X'
vypíše:
X
X X
X X X
X X X X
„Z jednotlivých 'X'
“ opět znamená, že každý print
vypíše maximálně
jedno 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'
vypíše:
X X X X X X
X X
X X
X X
X X
X X X X X X
„Z jednotlivých 'X'
“ opět znamená, že každý print
vypíše maximálně
jedno X
.
Předchozí programy z této sekce uprav tak, aby počet řádků (či velikost čtverce/trojúhelníku/tabulky) mohl zadat uživatel.
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:
!
"
#
$
%
&
…: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.)* Podprogram zamen
jsme si ukázali na srazu:
# Ve slově `slovo` zaměnit znak na pozici `pozice` za `novy_znak`;
# výsledek bude v proměnné `nove_slovo`.
zacatek = slovo[:pozice]
konec = slovo[pozice + 1:]
nove_slovo = zacatek + novy_znak + konec