Python - funkce (8. díl)

« zpět na python

banan/img/python-logo-glassy.png

Vytvářet v kódu funkce umožňuje dnes každý programovací jazyk. Funkce je jakýsi úsek programu, který můžeme z jiné části programu zavolat jeho jménem.

Pythonu funkci definujeme takto:

def jméno(parametry):
tělo funkce

  • def značí to, že definujeme nějakou funkci.
  • parametry jsou předávány (viz. níže).

Takto vypadá jednoduchá funkce hello_world:


def hello_world(pozdrav):
print pozdrav

Když do proměnné pozdrav uložíme nějaký text - pozdrav = "Ahoj svete!", poté zavoláme na funkci - hello_world(pozdrav), vypíše nám automaticky text, jelikož je to funkce.

  • Parametrů může být více, oddělujeme je čárkami.

Funkce může mít návratovou hodnotu. Takovou návratovou hodnotu z funkce vrátíme pomocí klíčového slova return.

Ukážeme si to na funkci pro výpočet faktorialu:

def sqrt(x):
..epsilon = 0.0001 # pozadovana presnost
..g = 1.0
....while abs(g ** 2 - x) > epsilon:
......g = (g + x / g)/2
....return g

Ovšem tím možnosti parametrů funkcí v Pythonu nekončí. Parametrům můžeme pomocí symbolu "="
přiřadit výchozí hodnotu....

kdo = "Táta"
def prace(kdo,co="dřevo"):
...print kdo+" uklízí "+co #Vypíše Táta uklízí dřevo.

Pokud při definování funkce bude poslední poziční parametr začínat znakem "*", bude do takového parametru přiřazeno pole obsahující všechny zbývající poziční parametry.

Podobně pokud poslední parametr funkce bude začínat "**", přiřadí do něj Python při volání funkce slovník obsahující všechny parametry zadané názvem, jejichž název neodpovídá žádnému běžnému parametru.

def funkce(*pozicni, **slovnikove):
..print "pozicni: ", pozicni
..print "slovnikove: ", slovnikove

...po zavolání...

>>> funkce(1,2,3, a="abraka", d="dabra")
pozicni: (1, 2, 3)
slovnikove: {'a': 'abraka', 'd': 'dabra'}

  • Tuto syntaxi je možné použít i obráceně, pro volání funkce.

Anonymní funkce

Python dále zavádí klíčové slovo lambda, pomocí kterého je možné definovat takzvanou anonymní funkci. Taková funkce smí obsahovat pouze jeden výraz, žádné složitější programátorské konstrukce. Funkce se po definici chovají jako běžné proměnné, nejzajímavější vlastností je, že je můžeme předávat jiným funkcím jako parametry.

def vyhovuje(s, f):
..for i in s:
....if f(i):
......print i

Obdobně můžeme definovat funkci, která vrací funkci:

def delitelne(n):
..return lambda x: x % n == 0

- Přeji hodně úspěchů při programování. -

Nezávazně vyzkoušejte webové stránky zdarma

Klientská sekce pro Vás

Spravujte své domény a hosting pohodlně 24 hodin denně

Kontakt pro zákazníky

Technická podpora

PO-PÁ 8:00-21:00
SO-NE, svátky 9:00-21:00

E-mail: podpora@banan.cz

Online pracovník

Patrik Jankov

+420 553 810 250

Online chat

Zvládáme opensource

Na našich serverech jsme ručně ověřili funkci více než 140 opensource systémů, některé z nich nabízíme na jedno kliknutí v administraci.

Hostované domény

8172 domén 6794 1378

Poslední článek - HOMEPAGE PRVKY

O
Ověřit dostupnost domény
Technická podpora: +420 553 810 250podpora@banan.cz
Technická podpora 800-2100 (SO-NE 900-2100) X
Online pracovník: Patrik Jankov
+420 553 810 250
podpora@banan.cz nebo Online chat
Kontaktovat technickou podporu můžete zde
Kontaktovat technickou podporu můžete zde
PO-PÁ 800-2100 (víkendy a svátky 900-2100)