While & Vlastní funkce  8. října 2019

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

0.

Co se stane, když tělo nějaké funkce necháš prázdné? Zkus vysvětlit proč. (Tělo funkce je odsazený blok za dvojtečkou)

1.

Co se stane, když necháš prázdné tělo cyklu? Zkus vysvětlit proč.

2.

Procvičení funkcí. Napiš funkci, která vykreslí domeček dané velikosti. (t.j. velikost se zadá argumentem)

domečky

3.

Máš-li ráda geometrii*, můžeš zkusit dávat domečkové funkci dva argumenty: šířku a výšku. Je potřeba si vzpomenout na Pythagorovu větu a funkci tangens. Pozor, funkce tan vrací výsletek v radiánech; je potřeba ho převést na stupně (from math import degrees).

domečky

* t.j. jestli nemáš ráda geometrii, tak tenhle projekt přeskoč

4.

Změň program Kámen, Nůžky, Papír tak, aby opakoval hru dokud uživatel nezadá konec.

5.

Změň funkci ano_nebo_ne tak, aby se místo ano se dalo použít i a, místo ne i n a aby se nebral ohled na velikost písmen a mezery před/za odpovědí.

Kód k funkci ano_nebo_ne najdeš v materiálech ze srazu tady Textům jako možná nebo no tak určitě by počítač dál neměl rozumět.

6.

Napiš program, který simuluje tuto hru:

První hráč hází kostkou (t.j. vybírají se náhodná čísla od 1 do 6), dokud nepadne šestka. Potom hází další hráč, dokud nepadne šestka i jemu. Potom hází hráč třetí a nakonec čtvrtý. Vyhrává ten, kdo na hození šestky potřeboval nejvíc hodů. (V případě shody vyhraje ten, kdo házel dřív.)

Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.

Nápověda: průběžně stačí ukládat jen údaj, kdo vede.

7.

Pomocí cyklu for a funkce range() napiš program, který vypíše:

a
a
a
a
8.

Pomocí cyklu for napiš program, který vypíše:

Řádek 0
Řádek 1
Řádek 2
Řádek 3
Řádek 4
9.

Jak jsi pojmenovala proměnnou, kterou jsi v minulém příkladu použila? 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. Možné řešení je uvedeno na konci zadání.

10.

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?

11.

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?

12.

Napiš program, který vypíše „tabulku“ s násobilkou. (K řešení tohoto povinného projektu se můžeš dopracovat postupně přes ty nepovinné)

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

Napiš program, který postupně z jednotlivých 'X' vypíše:

X
X X
X X X
X X X X
14.

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í
15.

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

Programy s cyklem for uprav tak, aby počet řádků (či velikost čtverce/trojúhelníku/tabulky) mohl zadat uživatel.

17.

Co dělá tenhle kód?

for c in 'Ahoj světe!':
    print(c)
18.

Vymyslíš lepší jméno pro proměnnou c z minulé úlohy?

19.

Co dělá tenhle kód?

for c in 38:
    print(c)
20.

Už víš, co dělá for s range(), výčtem hodnot a řetězcem. Dokážeš to zobecnit – popsat for jednodušeji, než jak je popsán v materiálech?