V průběhu roku bude asi 10 testů. Na jaře (cca. duben) prosím odevzdáte ročníkový projekt, tj. nějaký program. Témata ročníkových projektů budou upřesněna později, půjde se domluvit i na novém vlastním tématu.
Na seminář si prosím noste vlastní notebooky s nainstalovaným Pythonem3 a pohodlným textovým editorem.
Interpreter pythonu3 pro Windows stáhnete zde, v Linuxových distribucích je snad vždy v repozitáři (funkčnost ověříte příkazem python3).
K programování nepoužívejte notepad, chytré editory šetří práci. Pro uživatele Windows doporučuji PSPad (ke stažení zde), pro uživatele Linuxu doporučuji například Kate (v repozitáři). (Moje zkušenost se složitým, ale efektivním editorem Vim je velmi dobrá, ale nebudu vám ho nutit.)
Klasický počítač von Neumannova návrhu: procesor a paměť
Proměnná jako kus paměti, kterému přikládáme nějakou hodnotu (nějak ho interpretujeme) v závislosti natypu proměnné
Objekt je kus paměti, kde jsou současně uložena data i spustitelný kód. (V Pythonu je objektem kdeco, včetně věcí, které v jiných jazycích objektem nejsou.)
Interpreter Pythonu spouští příkazy po jednom, vhodné na testování.
Blok kódu : skupina příkazů, na kterou se vztahuje např. stejná podmínka nebo stejný cyklus. V pythonu se vyznačuje odsazením řádků.
kus programu, který se dá spustit z jiných míst programu; obvykle se mu předávají tzv. parametry.
Funkce někdy může navracet nějakou výstupní hodnotu, použijeme k tomu klíčové slovo return
. Když funkce nic nenavrací, říká se jí procedura .
Příklad:
def prepona(x, y): return (x**2 + y**2)**.5
Za klíčovým slovem if
je podmínka, která se vyhodnotí. Pokud při vyhodnocení vyjde hodnota True, vykoná se navazující blok, jinak se vykoná blok navazující na else
(pokud existuje).
if x==3: print("x je rovno 3") else: print("x není rovno 3") print("a není a není")
Pokud chceme dát podmínku i do bloku else, je vhodnější použít klíčové slovo elif:
if x > 0: print("x je kladné") elif x < 0: print("x je záporné") else: print("x je nula nebo nějaká blbost")
Všimněte si, že if, elif a else mají stejné odsazení.
Rekurzivní volání je, když funkce volá sama sebe. Nesmí se to dít donekonečna, jinak program po chvíli sletí kvůli moc velkému počtu volání.
Příklad s výpočtem faktoriálu
def fact(x): if x==0: return 1 else: return fact(x-1) ## <--- zde nastává rekurzivní volání
Sorry, sepíšu jindy. Ke slovníkům se ještě vrátíme. http://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3/Revenge_of_the_Strings