Domácí projekty k první lekci slouží k procvičení práce s interaktivní Python konzolí, aby sis to pořádně zažila, zkoušej si zadávat různé příkazy. Opakuj si použití příkazové řádky pro pohyb mezi adresáři a pro aktivaci/deaktivaci venv.
Doma (nebo pár dní po instalaci, pokud nejsi na srazu) si znovu spusť Python a zkus, jestli stále funguje.
>>> 1 + 1
2
Funguje i odčítání?
>>> 4 - 2
A co násobení? Programátoři nenásobí pomocí · ani ×, použijí jiný operátor: hvězdičku. Vyzkoušej si to a odevzdej správné řešení.
Dělení? Znak ÷ se taky na klávesnici těžko píše (zvlášť na české). Jak se asi bude dělit?
Závorky v Pythonu fungují jako v matematice. Zkus pomocí Pythonu vypočítat: 3+(4+6)×8÷2−1 =
Jak se to zapíše v Pythonu?
Jsou i jiné operátory než +
, -
a ty pro násobení a dělení.
Co dělá s čísly operátor %
(procento)? (Odpověz slovně)
A co dělá operátor **
(dvě hvězdičky)? (Odpověz slovně)
Až budeš příště sahat po kalkulačce, použij místo ní Python.
Python umí i jiné věci než čísla. Třeba takové řetězce – slova, věty nebo jiný text.
Řetězce se zadávají v apostrofech '
nebo uvozovkách "
a jdou spojovat sčítáním.
Vyzkoušej si to:
>>> 'A' + "B"
'AB'
Co je tady špatně? Jak to spravit?
>>> 'Ahoj' + 'PyLadies!'
Řetězce se dají sčítat. Dají se i násobit? Dělit? Odečítat? (Odpověz slovně)
Co se stane, když se pokusím sečíst číslo a řetězec? (Můžeš vložit výsledek z konzole, ale odpověz i slovně)
A vynásobit? (Můžeš vložit výsledek z konzole, ale odpověz i slovně)
Následují "nepovinné" projekty. Vřele doporučujeme si jich co nejvíce projít a odevzdat řešení. Na úvod zahřívací otázka:
Jakou používáš verzi Pythonu? (Ke správné odpovědi patří i způsob, jak jsi na odpověď přišla)
Následující projekty procvičí orientaci v chybových hláškách. Doporučujeme je udělat.
Jak se jmenuje druh chyby, která nastane, když…
if:
odsadíš jeden příkaz o čtyři mezery a druhý jen o dvě? —!
) jako operátor? —print(1, 2, 3)
čárku navíc? —Podívej se na odpovědi na předchozí otázku, ale Python zkus použít jen na ověření.
Jaká chyba nastane, když zkusíš použít proměnnou předtím, než do ní něco přiřadíš?
Opět se podívej na druhy chyb, ale Python použij jen na ověření.
Jaká chyba nastane, když zkusíš podělit řetězec řetězcem?
Lomítko (/
) je operátor, ale nedá se použít na řetězce. Vykřičník (!
) v Pythonu není operátor.
Jak se liší „jejich“ chyby?
Tenhle projekt by měl přivést k tomu, jak zjišťovat, co v Pythonu jde a co ne. Druhá část je trochu na zamyšlení.
Ne všechno se dá použít jako jméno proměnné. Fungují pro proměnné následující jména? Pokud ne, proč asi?
x
tlacitko4
34
3e4
krůta
$i
druha-odmocnina
readme.txt
kratsiStrana
POCET_BODU
_ (podtržítko)
π (pí)
True
_cache
__name__
while
První dva projekty jsou na procvičení toho, co jsme dělaly na srazu.
Zkus se nedívat na programy ze srazu.
Napiš program, který spočítá povrch a objem krychle o straně 2852 cm.
Abys nemusela tolik hledat v učebnici (vlastně Wikipedii): povrch S = 6a², objem V = a³
Řešení, pro kontrolu: S = 48803424 cm², V = 23197894208 cm³
Změň program tak, aby stranu/poloměr mohl uživatel zadat.
Tady už se na materiály ze srazu klidně podívej.
Ulož si následující program jako pokus.py
a spusť ho několikrát za sebou. Co dělá?
from random import randrange
cislo = randrange(3)
print(cislo)
Jak to funguje, to si vysvětlíme příště; zatím to ber jako kouzelné zaříkadlo.
Aby všechno fungovalo správně, nesmíš mít v aktuálním adresáři soubor jménem random.py
.
Tento projekt doplňuje program ze srazu. Zkombinuj program z projektu č. 2 s programem kámen-nůžky-papír a nastav tah_pocitace
na:
'kámen'
, pokud je cislo 0,'nůžky'
, pokud je cislo 1,'papír'
.Tyhle projekty kombinují opakování a nové informace. Doporučujeme si je projít.
Které pythoní operátory dokážeš z hlavy vyjmenovat?
Zkusila jsi porovnávat řetězce? Doplň tuhle tabulku tužkou; pak ověř odpovědi pomocí Pythonu:
a |
b |
|
---|---|---|
2 |
> |
1 |
1 |
< |
2 |
'abc' |
== |
'abc' |
'aaa' |
'abc' |
|
'abc' |
'Abc' |
|
'abC' |
'abc' |
|
'abc' |
'abcde' |
|
'abc' |
'ábč' |
|
'abc' |
10 |
Jaká je hodnota proměnné po provedení příkazu:
promenna = 1 < 2 ?
promenna = 2 < 2 ?
promenna = 1 < 2 < 3 ?
promenna = 1 < 3 < 2 ?
promenna = 1 < 3 < 3 ?
promenna = 'abc' < 'ABC' < 'def' < 'zajíc' ?
Tam, kde je hodnota proměnné False
, dají se některé z porovnávaných hodnot mezi sebou vyměnit, aby
byla True
?
Následuje prostor pro tvoji kreativitu.
Na srazu jsme měli program, který píše různé nesmysly podle uživatelem zadaného věku.
Zkus napsat program, který píše hlášky podle zadané rychlosti chůze, váhy ulovené ryby, počtu tykadel, teploty vody nebo třeba vzdálenosti od rovníku.
A teď trochu kreativity. Napiš program, který po zadání správného hesla vypíše nějakou tajnou informaci.
Vhodné tajemství je třeba: V pátek jsem viděla černého havrana.
Poslední projekty jsou pokročilejší. Jestli nemáš čas, radši udělej pořádně ty ostatní.
Projdi si v materiálech sekci „Nebo anebo a”:
Doplň tuhle tabulku:
a |
b |
a and b |
a or b |
not a |
---|---|---|---|---|
True |
True |
|||
False |
True |
|||
True |
False |
|||
False |
False |
Tohle je takzvaná pravdivostní tabulka:
Obsahuje jeden řádek pro každou kombinaci booleovských hodnot, které a
a b
můžou mít. Když se stane, že se v složitějších and
a or
ztratíš, doporučuji napsat si podobnou tabulku a na každý řádek se podívat zvlášť.
Zkus přepsat Kámen, Nůžky, Papír pomocí and
a or
.
Dokážeš docílit toho, aby se každý z řetězců 'Plichta.'
, 'Počítač vyhrál.'
a 'Vyhrála jsi!'
objevil
v programu jen jednou, aniž bys tyhle řetězce musela přiřazovat do proměnných?
Pokud ano, gratuluji!
Zkus program „šťastná/bohatá“, který je uvedený v materiálech, přepsat pomocí zanořených if
ů. Která verze ti připadá čitelnější?