Funkce, podmíněný příkaz if-else, příkaz cyklu for
Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto klíčovým slovem následuje jméno funkce. Dále funkce může obsahovat seznam formálních parametrů. Následuje tělo funkce, to je blok kódu (příkazů), a proto musí být odsazeno podobně jako tělo cyklu apod.[1]. Níže máme uvedeno zapsání funkce v Pythonu. Zápis: def nazev(parametry): Za dvojtečkou pokračuje tělo funkce.
Parametry funkce Funkce může mít v kulatých závorkách seznam parametrů funkce. Parametry funkce není nutno vyplňovat všechny. Záleží na konstrukci a funkce a jaké možnosti nám nabízí. Nejlépe je znázorněno využití parametrů na funkci Range (kapitola 4.3.1). Ukázka definice funkce s parametry: def vypis (jmeno, prijmeni, znamka): print
“Jméno studenta „,jmeno
print “ Prijmeni studenta”, prijmeni print “Dostal znamku“,znamka
Konstrukce if Příkaz if se skládá ze záhlaví a těla. Záhlaví začíná klíčovým slovem if, booleovským výrazem a končí dvojtečkou. Počet příkazů v těle příkazu if není omezen, ale musí být alespoň jeden.
-1-
Neúplná podmínka konstrukce if Booleovskému výrazu za příkazem if se nazývá podmínka. Je-li tato podmínka pravdivá, odsazený výraz se provede. Pokud podmínka není pravdivá, neprovede se nic. Syntaxe je: if booleovský výraz: příkazy
Úplná podmínka konstrukce if Úplná podmínka je taková, kde máme 2 možnosti a podmínka určí, která z nich se provede. Syntaxe je: if booleovský výraz: příkazy else: příkazyElse
Zřetězené podmínky konstrukce if Pokud potřebujeme více než dvě možnosti, musíme přidat další větve. Pro přidání dalších větví použijeme sériově uspořádané podmínky. Pro přidání další větve slouží příkaz elif. Počet elif není omezen. Pouze příkaz else smí být použit pouze jednou a musí být uveden jako poslední. Syntaxe je: if booleovský výraz1: příkaz1 elif booleovský výraz2: příkaz2 elif booleovský výraz3: příkaz3 ... ... else:
-2-
příkazElse
Konstrukce for Příkaz for iteruje prvky libovolné sekvence. V případě Pythonu, lze iterovat i řetězce včetně seznamů. Popis funkce: Za řídící proměnnou se každým probíhajícím cyklem interpretují všechny prvky sekvence v pořadí, v jakém jsou uloženy. K ukončení cyklu může dojít několika způsoby. a) Jsou vyčerpány všechny prvky b) Vznik neodchycené výjimky c) Příkaz break, který zajistí předčasné ukončení cyklu V průběhu cyklu není dobré měnit řídící sekvenci prvků. Může nastat chyba typu buď: a) K vynechání prvku b) opakování prvku Je-li nutná změna pořadí prvků v seznamu, pak je nezbytně nutné iterovat prvky kopie původního seznamu. [2] Příklad: ... retezec = 'Python' >>> for x in retezec: ...
print x, len(x)
Výstup: Python 6
Funkce Range() Potřebujeme – li iterovat prvky podle aritmetické posloupnosti, bude se nám právě hodit interní funkce range(). Kde právě jako parametr funkce dáváme číslo, které chceme rozložit aritmetickou posloupností. Tato funkce nám vrátí seznam prvků. -3-
>>> range(5) Výstup:
[0, 1, 2, 3, 4] Pokud bychom chtěli, aby začínala posloupnost od jinud než od 0, vložíme jako druhý parametr číslo, od kterého chceme, aby posloupnost začínala jinde než 0 >>> range(6,11) Výstup:
[6, 7, 8, 9,10] Další velice často používaná varianta použití této funkce je, že si můžeme nastavit po jakých krocích má aritmetická posloupnost přirůstat. Stačí přidat oproti předchozí verzi jeden parametr navíc. >>> range(2,6,11) Výstup:
[ 6, 8, 10]
-4-
Bibliografie [1] ŠVEC, Jan. Učebnice jazyka Python (aneb Létající cirkus) [online]. 16.prosince.2002 [cit. 2009-12-01]. Dostupný z WWW:
. [2] ŠVEC, Jan. Učebnice jazyka Python (aneb Létající cirkus) [online]. 16.prosince.2002 [cit. 2009-12-01]. Dostupný z WWW: .
PYTHON SOFTWARE FOUNDATION.. More Control Flow Tools [online]. 1.dec.2009 [cit. 2009-12-01]. Dostupný z WWW: .
BÍLEK, Petr. Sally - Python- Funkce [online]. 2005-09-11 [cit. 2009-12-01]. Dostupný z WWW: .
-5-
Ověření znalostí z kapitoly 3- Funkce, podmíněný příkaz if-else, příkaz cyklu for 1. Jak se definuje funkce v jazyce python? a) del b) dek c) return d) def
2. Kolik větví může obsahovat program? a) Nekonečně mnoho b) 1 c) 2 d) 2 a více
3. Jaká je základní konstrukce if ? a) if – else d) if-elif-else c) Pouze if 4. Lze použít funkci Range i ve For cyklu? a) Ne b) Ano c) Ve For cyklu ne, ale ve while cyklu ano 5. Co rozumíme pojmem parametr funkce? a) Nic takového jako parametr funkce neexistuje b) Výčet informací, které musíme funkci dodat c) Informace, pro vznik funkce
-6-