V minulých hodinách jsme volali funkce, které již byly implementovány (např. print('Hello ZPD1')). Na dnešním cvičení si ukážeme, jak psát funkce vlastní. Jako první zkusíme napsat funkci, která spočítá obsah obdelníka.
Funkci definujeme příkazem def, za který napíšeme jméno funkce, pak do závorky seznam argumentů, které funkce potřebuje pro výpočet, a nakonec dvojtečku. Potom následuje odsazené tělo funkce - příkazy, které funkce provádí. Tělo může začít dokumentačním řetězcem, který popisuje, co funkce dělá. Příkazem return pak můžeš z funkce vrátit nějakou hodnotu. Tělo funkce může mít více příkazů, včetně podmínek, cyklů a podobně. Speciální příkaz return, který můžeme použít jenom ve funkcích, ukončí funkci a vrátí danou hodnotu ven z funkce. Chová se tedy trochu jako break, jen místo cyklu opouští celou funkci. Když funkce neskončí příkazem return, automaticky se vrátí hodnota None. Je to hodnota zabudovaná přímo do Pythonu, podobně jako True nebo False, a znamená "nic".
Vytvoř v IDE Thonny nový soubor, ulož ho na "Plochu" pod jménem ZPD1t03funkce.py
1) Napište funkci, která vrátí obsah elipsy daných rozměrů. Příslušný vzoreček je S = pi * a * b, kde a a b jsou délky os. Strany a, b načtěte z klávesnice. Předpokládejte disciplinovaného uživatele, který zadá smysluplné hodnoty.
2) Napište funkci, která vrátí objem kvádru. Příslušný vzoreček je V = a * b * c. Strany a, b, c načtěte z klávesnice. Předpokládejte disciplinovaného uživatele, který zadá smysluplné hodnoty.
Funkce může používat proměnné "mimo funkci" viz níže globální proměnná pi. Ale všechny argumenty a všechny proměnné, do kterých funkce přiřazuje (viz proměnná s), jsou úplně nové proměnné, které nemají nic společného s tím, co je "mimo funkci - venku" kolem funkce. Všem úplně novým proměnným se říká lokální proměnné, protože existují jen místně, v rámci volání jedné jediné funkce. Proměnné, které nejsou lokální, jsou globální - ty existují v celém programu. (Funkce, které mají náhodou lokální proměnnou stejného jména jako globální, "není viditelná v celém programu" - to jméno označuje lokální proměnnou.)
Řetězce v Pythonu můžeš normálně napsat jen na jeden řádek. Jinak by koncová uvozovka mohla být kdekoli a špatně by se hledala, kdybys na ni zapomněla. My potřebujeme také řetězce, které obsahují více řádků. Pokud chceme více řádků, tak musíme vložit do řetězce \n pro nový řádek.
Původní řetězec se nemění. Metoda vrátí nový řetězec, ten starý zůstává. Základní vlastnost řetězců v Pythonu: jednou existující řetězec se už nedá změnit, dá se jen vytvořit nějaký odvozený.
Načtěte z klávesnice jméno a příjmení osoby a zobrazte její iniciály.
Heineman G., Pollice G., Selkow S., Algorithms in a Nutshell , O'Reilly, USA 2008
Lutz, Mark, Learning Python , Sebastopol : O'Reilly 2009
Pilgrim, Mark, Ponořme se do Python(u) 3 , Edice CZ.NIC 2010
Beazley, David M.; Jones, Brian K., Python cookbook , Sebastopol : O'Reilly 2013
Summerfield, Mark, Python 3 : výukový kurz , Brno : Computer Press 2010
Jsem správcem neuroinformatické laboratoře na Západočeské univerzitě na Katedře informatiky a inženýrství. V rámci ZČU jsem pracoval na několika projektech (sémantický web v EEG / ERP portálu, OEN ontologie, vývojová koordinační porucha u dětí, kontrola pozornosti řidiče, analýza EEG u myší, asistenční systém řízený mozkovými vlnami pro osoby se sníženou pohyblivostí, BodyInNumbers).
St: 13:00-13:55
Pá: 10:00-11:00