Pokud nemáte Python nainstalovaný, pokud nevíte, jak se vůbec Python může spouštět, měli byste si nejdříve přečíst Spouštíme Python.
Pusťte IDLE nebo 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 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. Ve skutečnosti je mnoho jazyků vyvinutých k tomu, aby počítače rozuměly. My nyní zkoušíme ten, co se jmenuje Python. Na Pythonu je dobrá věc ta, že mu rozumí snadno i člověk.
Tady je, jak se počítače zeptat, kolik je dvanáct a třináct. Vyzkoušejte. (Nemusí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. Ten # a vše co je za tím psát nemusíte, to je tzv. komentář a je jen pro vás, jen pro komentování kódu. Pro Python to neznamená vůbec nic, nemá to žádnou funkci, python komentáře zvesela ignoruje:
>>> 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.0
>>> 7/3
2.3333333333333335
V dřívějších verzích příklad 7/3 dával výsledek 2, protože se používalo celočíselného dělení.
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) a (3 + 4) (dostal 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 na těchto listech!
Pokud vám náhodou stále není jasné proč 1+2*3-4 dává 3 a ne 5, tak ten důvod je ten, že násobení má přednost před sčítáním. Váš učitel matematiky tomu asi říká přednost funkcí nebo podobně. Pokud to stále není jasné, nic si z toho nedělejte, snad to nebudete potřebovat.
Všechny věci, se kterými jsme doposud pracovali, byly čí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, + 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, 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'
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.
Představte si, že máte udělat mnoho výpočtů s číslem 123456. (Možná je to váš měsíční příjem :-)). Dá se to udělat takto:
>>> 123456 * 3
370368
>>> 123456 / 6
20576.0
>>> 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 123456 a proč je tam tak často. A ještě - také se 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. Pro náš případ bude nejlepší plat. Uděláme to takto:
>>> plat = 123456
>>> plat * 4
493824
>>> plat / 12
10288.0
>>> 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!'
V Pythonu říkáme tisk, když chceme něco vytisknout, zobrazit na obrazovce, ne na tiskárně. Doposud se vše tisklo jaksi automaticky:
>>> 1+2
3
3 je vytištěná automaticky. Někdy však toto jednoduché nefunguje a my musíme použít skutečný tisk, tedy funkci print():
>>> cena=1000
>>> print (cena)
1000
>>> print ("Cena vyrobku byla", cena, "Kc.")
Cena vyrobku byla 1000 Kc.
Příkaz print() se používá, když chcete přimět počítač, aby něco vytisknul. Dosud jsme to nepotřebovali, protože Python tiskne téměř vše základní v příkazovém řádku automaticky. Pokud chceme tisknout několik věcí za sebou, tak již print() použít musíme, a jednotlivé věci musíme oddělit čárkou. Stejně jako v programech musíme print k tisku používat vždy. Závorky tam musí být, protože print je funkce, ale o tom více až později.
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é! (Je to lépe vysvětleno v Na mezerách záleží.):
>>> seznam = [1, 2, 3, 4, 5]
>>> for x in seznam:
... print (x, 3 * 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 trojnásobků. Všimnete si, že Python obyčejně vkládá mezeru mezi dvě věci, které tiskne za sebou v řádku.
Python se dá používat ke kreslení obrázků. Vyzkoušejte toto. První tři řádky vypadají asi tajemně (vysvětlíme si je později), ty další snad již trochu smyslu dávají. Na tento příklad je lépe si pustit “Python (command line)” než “IDLE (Python GUI)” a zkoušet to v něm, protože výsledky v něm vidíte ihned, narozdíl od IDLE, kde výsledek uvidíte až po poslední řádce mainloop():
>>> from tkinter import *
>>> platno=Canvas()
>>> platno.pack()
>>> platno.create_line(0, 0, 200, 100)
>>> platno.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
>>> platno.create_rectangle(50, 25, 150, 75, fill="blue")
>>> mainloop()
Jednou se vám určitě stane (tedy pokud se vám to již nestalo), že Python odpovídá pěkně neslušně, třebas jako:
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í řádky snad můžete ze začátku ignorovat. Pokud chcete, podívejte se na Chyby, kde se to vysvětluje podrobněji, kde je seznam nejběžnějších stížností, které na vás Python může mít a co znamenají.
Na konci tohoto listu si vytvoříme první program. Někdy budu používat slovo program, někdy script - je to to samé. V IDLE zvolte File-New Window, tím se vám otevře nové editační okno, ve kterém již počítač okamžitě neodpovídá na příkazy, ale můžete v něm napsat několik těchto příkazů za sebou (1 řádek = 1 příkaz). Poté, co program napíšete a uložíte (File-Save), můžete ho spustit dvojím způsobem. Buď pomocí nabídky Run-Run (případně klávesou F5) nebo v Tento počítač dvojklikem (případně Enterem). Více o tomto v IDLE editor
Upozorňuji také, že zde nesmíte psát ono >>>, stejně jako to nepíšete na příkazovém řádku. Na příkazovém řádku se však >>> zobrazují, v editoru při psaní programů však již ne. Takže např. první kod z této stránky bude napsán jako program takto:
print(1 + 2 + 3 + 4)
print(1 + 2 * 3 - 4)
print(200*300)
print(12/4)
print(7/3)
Úkol: Od dávných dob se traduje, že první program nedělá nic jiného, než že tiskne Ahoj svete!. Nic víc, nic míň. Takže do toho! Čeština v řetezcích: Doporučuji, alespon zpočátku, české háčky a čárky nepoužívat, nebo pak raději přejít na jiný editor, než je IDLE. Více na Čeština v programech.
Máme dva druhy listů:
Potom vám doporučujeme pokračovat popořadě všemi pracovními listy. Každý z nich se odkazuje na pomocné listy, takže ty si můžete číst v průběhu.