V této lekci si vyzkoušíš želví kreslení.
Některé linuxové distribuce obsahují standardně jen část celkové funkčnosti
Pythonu.
Konkrétně knihovnu tkinter
(která umožňuje např. kreslit „želví obrázky“)
často musíme nainstalovat zvlášť.
Abys zjistil/a, jestli je už je nainstalovaná, zadej příkaz:
$ python3 -m tkinter
Objeví-li se okýnko, je všechno v pořádku.
Zavři ho a přejdi na doinstalování virtualenv
.
Jestli ne, modul tkinter
ještě nainstaluj:
$ sudo dnf install python3-tkinter
$ sudo apt-get install python3-tk
Používáš-li jinou distribuci, musíš si správné jméno balíčku najít na Internetu.
Pusť Python v interaktivním módu (bez souboru .py).
$ python
>>>
(Znaky >
a $
píše počítač, ne ty.
Na Windows bude místo $
znak
>
a před $
nebo
>
může být ještě něco dalšího.)
Pak napiš:
from turtle import forward
forward(50)
Ukáže se okýnko se šipkou, které nezavírej. Dej ho tak, abys viděla i příkazovou řádku i nové okýnko.
Želva je převlečená za šipku. Ale dá se odmaskovat:
from turtle import shape
shape('turtle')
Želva se umí otáčet a lézt po papíře. Na ocase má připevněný štětec, kterým kreslí čáru.
from turtle import left, right
forward(50)
left(60)
forward(50)
right(60)
forward(50)
Zkus chvíli dávat želvě příkazy.
Když se ti něco nelíbí, můžeš buď zavřít kreslící okno,
nebo naimportovat a použít funkci clear()
.
Interaktivní mód je skvělý na hraní, ale teď přejdeme zase na soubory.
Vytvoř si v editoru nový soubor.
Ulož ho do adresáře pro dnešní lekci pod jménem zelva.py
.
Jestli adresář pro dnešní lekci ještě nemáš, vytvoř si ho!
Pojmenuj ho třeba 02
.
Jestli chceš pro soubor použít jiné jméno, můžeš, ale
nepojmenovávej ho turtle.py
.
Do souboru napiš příkazy na nakreslení obrázku
a na konec zavolej funkci exitonclick
(importovanou z modulu turtle
).
Otázka
Co dělá funkce exitonclick
?
Až to budeš mít hotové, zkusíme začít kreslit obrázky:
Nakresli čtverec.
Čtverec má čtyři rovné strany a čtyři rohy po 90°.
Nakresli obdélník.
Zkus zařídit, aby se po nakreslení „dívala” želva doprava (tak jako na začátku).
Nakresli tři čtverce, každý otočený třeba o 20°.
Tolik kódu! Tohle musí jít nějak zjednodušit!
Jde.
Pojďme se naučit příkaz for
.
Udělej v editoru nový soubor, ulož ho jako cyklus.py
, a napiš do něj
následující program.
Pak zkus co dělá.
for cislo in range(5):
print(cislo)
for pozdrav in 'Ahoj', 'Hello', 'Hola', 'Hei', 'SYN':
print(pozdrav + '!')
Co dělá příkaz for
?
Zkus popsat, jak pracuje následující program.
soucet = 0
for cislo in 8, 45, 9, 21:
soucet = soucet + cislo
print(soucet)
A znovu ke kreslení, tentokrát s použitím cyklů.
Nakresli čtverec.
V programu použij forward
jen dvakrát:
jednou v importu, jednou jako volání.
Funkce penup
a pendown
z modulu turtle
řeknou želvě,
aby přestala, resp. začala kreslit.
Zkus nakreslit přerušovanou čáru.
Pak zkus zařídit, aby jednotlivé čárky byly postupně větší a větší.
Nápověda
Co přesně dělá příkaz for
?
Dá se využít proměnná, kterou nastavuje?
Nakonec nakresli 3 čtverce, každý otočený o 20°.
Tentokrát už víš, jak to dělat chytře: opakuj pomocí příkazu
for
, ne kopírováním kódu.
Máš-li hotovo, zkus nakreslit schody:
A máš-li i schody, zkus nakreslit těchto šest (nebo sedm?) šestiúhelníků: