Python se představuje: čísla, řetězce, seznamy, proměnné, grafika a úkol.
První kroky
Pusťte si IDLE nebo Python (command line). Máte před sebou okno, které má někde nahoře slovo Python a ve kterém bude něco jako: >>>
To >>>
se nazývá prompt (výzva), což znamená, že počítač je připraven přijímat vaše příkazy. Zde můžete psát různé věci a počítač je bude okamžitě vykonávat. Bohužel počítač nerozumí česky (ani anglicky). Když napíšete
>>> Řekni mi kolik je dvanáct plus třináct.
nebude vůbec rozumět tomu, co po něm chcete. Protože jsou počítače velmi hloupé, musíte k nim mluvit speciálním jazykem vyvinutým k tomu, aby mu počítač snadno rozuměl. Takových jazyků je mnoho, velmi mnoho.
My budeme zkoušet ten, co se jmenuje Python. Na programovacím jazyku Python je dobrá věc ta, že mu snadno porozumí i člověk. Tady je příklad, jak se počítače zeptat, kolik je dvanáct a třináct. Vyzkoušejte. (Nesmíte psát to >>>, ale musíte stisknout klávesu Enter
na konci řádku).
>>> 12 + 13
Pár dalších příkladů i s odpověďmi od počítače. Vyzkoušejte si je všechny a ještě i další, svoje.
>>> 1 + 2 + 3 + 4
10
>>> 1 + 2 * 3 - 4 # násobení je *, ne x.
3 # Pokud myslíte, že to má být 5, přemýšlejte!
>>> 200 * 300
60000
>>> 12 / 4 # Pro dělení používejte /
3
A teď trochu překvapení.
>>> 7 / 3
2
Možná jste očekávali 2.3333333 nebo 2 1/3, ale ve skutečnosti počítač zbytek zahazuje. Jsou způsoby, jak dostat přesnější odpověď, řekneme si o nich později. Experimentujte trochu s Pythonem jako s kalkulačkou. V Pythonu můžete používat závorky stejně jako v matematice:
>>> (1 + 2) * (3 + 4)
21
Python zde nejdříve spočítal 1 + 2, pak 3 + 4, dostal čísla 3 a 7 a pak výsledky mezi sebou vynásobil.
Nebojte se experimentovat! Kdykoliv se naučíte něco nového v Pythonu, zkuste dělat malé (nebo větší!) změny a hrajte si s tím, dokud si nebudete jistí, jak to funguje. Neomezujte se na to, co je napsáno v těchto lekcích!
Pokud vám náhodou stále není jasné, proč 1 + 2 * 3 - 4 dává 3 a ne 5, tak vězte, že ten důvod je, že násobení má přednost před sčítáním. Váš učitel matematiky tomu asi říká přednost početních operací nebo podobně. Pokud to stále není jasné, nic si z toho nedělejte, snad to nebudete potřebovat.
Různé typy objektů
Všechny věci, se kterými jsme doposud pracovali, byla čísla. Ale Python umí pracovat kromě čísel i se spoustou dalších věcí. Zkuste například toto:
>>> 'ahoj ' + 'svete'
'ahoj svete'
Věci mezi uvozovkami se nazývají řetězce. Jak vás asi již napadlo z našeho příkladu, sčítací znaménko + můžeme používat i u řetězců. Spojuje řetězce: to znamená připojuje jeden hned za ten druhý. Následuje trochu překvapení:
>>> 3 * 'ahoj'
Všimli jste si snad, že jsem vám tentokrát neřekl, co počítač odpověděl. A to proto, že od vás očekávám, že si to zkusíte sami. Nic se nenaučíte, pokud si ty příklady nebude zkoušet sami, tedy pokud je budete jen číst a myslet si – tak tomu rozumím a tomu taky, tak jedeme dál… Napište si do svých poznámek, co počítač odpověděl, když se ho zeptáte, kolik je 3 * 'ahoj'
, abyste si to zapamatovali.
Uvozovky můžete používat jednoduché nebo dvojité, Pythonu na tom nezáleží
>>> 'ham' + "burger"
'hamburger'
Proč by vás mělo tohle zajímat? Řekněme, že budete chtít napsat anglické I'm sorry
.
Python má taky „seznamy“.
>>> [1, 2, 3]
[1, 2, 3]
>>> [1, 2, 3] + [7, 8]
Opět vám neříkám, jak Python odpoví. Zkuste a odpověď si zapište do svých poznámek.
Dáváme věcem jména
Představte si, že máte udělat mnoho výpočtů s číslem 123 456. (Možná je to váš měsíční příjem korunách :-)). Dá se to udělat takto:
>>> 123456 * 3
370368
>>> 123456 / 6
20576
>>> 123456 - 1000
122456
Určitě vás to za chvíli přestane bavit, protože koho by bavilo psát pořád dokola tak dlouhé číslo. A navíc – když bude chtít někdo jiný po vás číst, co jste dělali, bude asi zmaten tajemným číslem 123 456 a proč je tam tak často. A ještě se navíc můžete snadno splést a místo 4 napsat 3.
Všechny tyto problémy můžeme řešit tak, že dáme číslu jméno. Že ho prostě pojmenujeme. Dáme mu tedy jméno, které bude dobře vystihovat smysl toho čísla. Upozorňuji, že nesmíme používat háčky ani čárky, takže například místo číslo musíme psát cislo. Pro náš případ bude nejlepší plat. Uděláme to takto:
>>> plat = 123456
>>> plat * 4
493824
>>> plat / 12
10288
>>> plat
123456
Vtip je v tom, že jakmile jednou řeknete plat = 123456
, můžete kdykoliv použít plat místo 123456
.
Čemu my zde říkáme „jména“, většina lidí říká „proměnné“. Později si řekneme proč. Prozatím jsou „jména“ v pohodě. Jména můžete dávat i jiným věcem, než jsou čísla. Například:
>>> MojeJmeno = 'Pavel'
>>> 'Ahoj ' + MojeJmeno + '!'
'Ahoj Pavel!'
Děláme něco znovu a znovu
Vaše kalkulačka jistě umí stejně dobře vše, co jsme až doposud dělali. Teď si ukážeme, co už asi neumí. Mimochodem, mezery na začátku druhého řádku jsou důležité!
>>> for x in 1, 2, 3, 4, 5:
... print x, x * x # Prompt se změnil, Python vám naznačuje, že ještě něco chce.
... # Zde stiskněte jen Enter.
Dovedete odhadnout, co to bude dělat? Blahopřeji, pokud jste si mysleli, že to vytiskne čísla od 1 do 5 včetně svých čtverců. Všimněte si, že Python obyčejně vkládá mezeru mezi dvě věci, které tiskne.
Příkaz print
se používá, když chcete přimět počítač, aby něco vytiskl. Dosud jsme to nepotřebovali, protože Python tiskne odpověď automaticky vždy, když je to věc, která se dá vypočítat, na kterou je odpověď. Takové věci se nazývají z určitých důvodů výrazy. Python však netiskne každou hodnotu, kterou vypočítá, ale pouze ty hodnoty výrazů, které napíšete na promptu >>> a věci, které žádáte, aby vytiskl příkazem print
.
Grafika
Python se dá používat ke kreslení obrázků do oken. Následující příklad používá modul Livewires. Takže ten, kdo přeskočil nultou lekci, tak se prosím vraťte, je tam návod, jak a odkud Livewires nainstalovat. Na tento příklad je lépe si pustit "Python (command line)" než "IDLE (Python GUI)" a zkoušet to v něm:
>>> from livewires import *
>>> begin_graphics()
>>> set_colour(Colour.red)
>>> move(100,100)
>>> draw(200,100)
>>> set_colour(Colour.blue)
>>> draw(100,200)
>>> end_graphics()
Před posledním příkazem si pořádně prohlédněte výsledek. Poslední příkaz pravděpodobně okno po 1 sekundě zavře. Pokud ne, udělejte to sami.
Všechno se to příšerně kazí
Jednou se vám určitě stane (tedy pokud se vám to již nestalo), že Python odpovídá pěkně neslušně, třeba takto:
>>> 3 + 'mismas'
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>
To vypadá pěkně odpudivě. Je to většinou napsané červeně a na posledním řádku se vždy vyskytuje slovo Error. Neděste se. To jen Python dává najevo, že nerozumí tomu, co jste napsali. Všechno kromě posledního řádku snad můžete ze začátku ignorovat.
Úkol
Napište, co jste si zapsali do svých poznámek.