Výrazy a podmínky  1. března 2021

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

První sekce bude o textu – o řetězcích, které jsme na videu jen naťukli.

0.

Řetězce obsahují slova, věty nebo jiný text. Řetězce se zadávají v uvozovkách – jednoduchých ' nebo dvojitých ":

>>> 'Ahoj!'
'Ahoj!'
>>> "Ahoj!"
"Ahoj!"
1.

Řetězce jdou spojovat sčítáním. Vyzkoušej si to:

>>> 'A' + "B"
'AB'
2.

Co je tady špatně? Jak to spravit?

>>> 'Ahoj' + 'týmy!'
3.

Řetězce se dají sčítat. Dají se i násobit? Dělit? Odečítat? (Odpovězte slovně.)

4.

Co se stane, když se pokusím sečíst číslo a řetězec? (Můžete vložit výsledek z příkazové řádky, ale odpověz i slovně)

5.

A vynásobit? (Můžete vložit výsledek z příkazové řádky, ale odpověz i slovně)

Vzpomínáte si na chybové hlášky a na proměnné?

6.

Jaká chyba nastane, když zkusíš podělit řetězec řetězcem?

7.

Jaká chyba nastane, když zkusíš použít proměnnou předtím, než do ní něco přiřadíš?

8.

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

Následující projekty jsou na procvičení toho, co bylo ve videích.

9.

Napiš program, který spočítá povrch a objem krychle o straně 2852 cm.

Abys nemusel tolik hledat v učebnici (vlastně Wikipedii): povrch S = 6a², objem V = a³

Řešení, pro kontrolu: S = 48803424 cm², V = 23197894208 cm³

10.

Změň program tak, aby stranu/poloměr mohl uživatel zadat.

Následuje prostor pro vaši kreativitu.

11.

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ěl černého havrana.

12.

Na videu byl program, který píše různé nesmysly podle uživatelem zadaného věku.

Zkuste 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.

(Pošlete ten nejzdařilejší; kdybyste se chtěli pochlubit několika verzemi, dejte je všechny do jedné odpovědi.)

A nakonec pár úkolů, které tvoří větší projekt. Navazují na sebe. Dělej je postupně.

13.

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.

14.

Vytvoř program, který dělá následující:

  • Vybere náhodné číslo ze tří možností (0, 1, nebo 2). (Koukni na předchozí úkol!)
  • Je-li číslo 0:
    • do proměnné tvar uloží slovo 'trojúhelník';
  • jinak, je-li číslo 1:
    • do proměnné tvar uloží slovo 'čtverec';
  • jinak:
    • do proměnné tvar uloží slovo 'kolečko'.
  • Vypíše tvar.
15.

Vytvoř hru Kámen nůžky papír, která funguje následovně:

  • Do proměnné tah_pocitace dá náhodně slovo 'kámen', 'nůžky' nebo 'papír'. (Koukni na předchozí úkol!)
  • Zeptá se uživatele na tah; výsledek uloží do proměnné tah_hrace
  • Je-li tah hráče 'kámen':
    • je-li tah počítače 'kámen':
      • vypíše 'Remíza!';
    • jinak, je-li tah počítače 'nůžky':
      • vypíše 'Vyhrál jsi!';
    • jinak, je-li tah počítače 'papír':
      • vypíše 'Prohrál jsi!'.
  • Jinak, je-li tah hráče 'nůžky':
    • je-li tah počítače 'kámen':
      • vypíše 'Prohrál jsi!';
    • jinak, je-li tah počítače 'nůžky':
      • vypíše 'Remíza!';
    • jinak, je-li tah počítače 'papír':
      • vypíše 'Vyhrál jsi!'.
  • Jinak, je-li tah hráče 'papír':
    • je-li tah počítače 'kámen':
      • vypíše 'Vyhrál jsi!';
    • jinak, je-li tah počítače 'nůžky':
      • vypíše 'Prohrál jsi!';
    • jinak, je-li tah počítače 'papír':
      • vypíše 'Remíza!'.
  • Jinak,
    • Omluví se (vypíše hlášku), že zná jen tři slova: kámen, nůžky a papír.

Je to celkem dlouhý program, ale můžeš ho psát postupně: každý jednotlivý řádek „přelož“ do Pythonu. Budeš potřebovat if, elif, a else; porovnávání (==) a přiřazení (=); pro výpis print a pro vstup input.