Další Předchozí Obsah

7. Control-flow statements

(Existuje nějaký český překlad?)

7.1 Příkaz pass

Příkaz pass se pouze vykoná, nedělá žádnou užitečnou činnost. Používá se používá na místech, kde je podle syntaxe jazyka požadován příkaz.

7.2 Cyklus for

Cyklus for funguje podobně jako v shellu, používá se řídící proměnná, která prochází postupně všemi hodnotami v listu, n-tici nebo řetězci.

>>> zvirata = ['slon', 'nosorožec', 'hroznýš', 'ježek']
>>> for i in zvirata:
...     print len(i), i
4 slon
9 nosorožec
7 hroznýš
5 ježek

ADVANCED: Není bezpečné cyklit přes seznam a přitom jej modifikovat. V takovém případě je nutné použít nějaký jiný obrat, např. cyklit přes kopii objektu. (Viz příklad v anglickém tutorialu (ODKAZ))

7.3 Funkce range()

Je-li potřeba cyklit přes posloupnost celých čísel, je možné s výhodou použít funkci range(), která bere jeden, dva nebo tři parametry. Funkce vrací seznam obsahující aritmetickou posloupnost závislou na parametrech.

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(-5,5)
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> range(0,-10)
[]
>>> range(0,-10,-1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

ADVANCED: Používá-li se range() na počítačích s malou velikostí paměti nebo s velkými parametry, může dojít k vyčerpání paměti - výjimka MemoryError. Je totiž zapotřebí v paměti vytvořit místo na dostatečně velký seznam. V takových případech je lepší použít funkce xrange(), která se volá stejně, ale místo seznamu vrací objekt typu xrange. Tento objekt se zvenku chová stejně jako seznam, při přístupu k elementu se tento musí vypočítat. (Pěkný příklad na přetěžování.)

7.4 Smyčka while

Smyčka while se používá úplně stejně jako v C.

Použití

while <podmínka>:
        <blok - opakovaná akce>

7.5 Rozdělení if elif else

Příkaz if funguje

if <podmínka P1>:
        <pokud je splněno P1>
elif <jiná podmínka P2>:
        <pokud je splněno P2>
elif <ještě jiná podmínka>:
        <pokud je splněno P3>
else:
        <pokud není splněno nic>

Všechno, kromě if je nepovinné, elifů může být více, ale pokud jsou, tak musí být všechny před else.


Další Předchozí Obsah