Funkce v Pythonu: def. Python 3 pro začátečníky
V programovacích jazycích jsou funkce kódovanou částí. Jedná se o samostatné bloky v textu programu. Definováno pomocí vyhrazeného slova def. V Pythonu lze z libovolné části skriptu přistupovat bez omezení.
Obsah
Proč potřebujete funkce
Funkce jsou pro programátora nepostradatelným nástrojem. S jejich pomocí rozvíjí developer program, který je více srozumitelný a kompaktní. Pomocí funkcí můžete znovu použít samostatný kód, aniž byste jej znovu napsali.
Jedná se o nejjednodušší způsob, jak zabalit logiku provádění jednotlivých částí programu. Tím se snižuje množství a čas, který špecialista vynakládá na vytvoření skriptu.
Jak psát první funkci
V Pythonu 3 pro začátečníky je jejich znalost programování nejjednodušší funkcí print (). Chcete-li ji vidět v akci, budete potřebovat vývojové prostředí. Chcete-li to provést, stáhněte distribuci jazyka z oficiálního webu a nainstalujte Python do počítače.
Otevřete nabídku Start a v seznamu programů najděte Python 3. Rozbalte ho levým tlačítkem myši. V seznamu, který se otevře, vyhledejte prostředí IDLE a spusťte jej. Zadejte typ ("Dobrý den, svět!") A stiskněte "Enter". Tlumočník vrátí výsledek vaší první funkce.
Někteří programátoři dávají přednost práci v konzoli. Pokud jste jedním z nich, stiskněte win + R a zadejte příkaz python.exe. Bude otevřen normální interpret pouze s rozhraním cmd. Zadejte program výše popsaným způsobem a stiskněte klávesu Enter pro zobrazení výsledku.
Jak používat def
Nové funkce jsou vytvořeny pomocí příkazu def. Jsou stejně efektivní jako vestavěná tisk () nebo open (), ale liší se od funkcí v kompilacích jazyků. Python def odkazuje na spustitelné pokyny. To znamená, že funkce neexistuje, dokud ji tlumočník neuvidí, a nekoná k jeho provedení.
Příkaz def vytvoří nový objekt a dává mu jméno. To znamená, že když tlumočník spustí implementaci, vytvoří nový objekt a přidruží jej k názvu zadanému po def. Chcete-li ukládat data do funkcí, můžete připojit různé atributy.
Teď pojďme napsat funkci, která vrátí frázi "Hello, World!", Pouze s def:
- > def hello_mir ():
- tisk ("Dobrý den, svět!")
- > hello_mir () # volání funkce
- Dobrý den, svět!
Funkce syntaxe a návrat
Deklarace def v Pythonu se skládá ze záhlaví a je napsána podle následujících pravidel:
- > def
(argument 1, argument 2, argument N):
Po záhlaví následuje instrukční blok, který začíná povinnou odrážkou. V IDLE provede tlumočník automaticky. V poznámkovém bloku nebo v jiném textovém editoru však můžete zapomenout stisknout klávesu Tab. Potom se funkce nespustí. Programový kód v instrukčním bloku se nazývá funkční těleso a provádí se při jeho volání.
Také v těle se někdy vrátí:
- def
(argument 1, argument 2, argument N): - ...
- návrat
Návrat ukončí funkci a předá výsledek objektu volajícímu programu. Pokyn není povinný. Funkce bude fungovat bez návratu a skončí, když řídící niť dosáhne konce těla.
Parametry a argumenty
Každá funkce může předat parametry zadané v závorkách po def. V Pythonu jsou napsány jako proměnné, oddělené čárkami. Hodnoty nebo odkazy na tyto názvy jsou přiřazeny do bloku za dvojtečkou. Po provedení přiřazení se obvykle nazývají argumenty, nikoliv parametry.
Argumenty v rámci funkce se nesouvisejí s objekty mimo ni, proto jsou v programování označovány jako místní proměnné. Rozsah je omezen na funkční blok, který začíná def a končí s návratností. Aby to bylo jasnější, uveďme příklad:
- x = 12 # přiřazení proměnných odkazů na celočíselné objekty
- y = 34
- > def example (x, y): # vytvořte funkci s názvem example
- x = "Hello" # přiřazení hodnot k argumentům x, y
- y = "Python"
- tisk (x, y, sep = «,»)
- návrat Žádné
- > příklad (x, y) # volání funkce, nezapomeňte zadat parametry
- Dobrý den, Python
- > tisk (x, y)
- 12 34
Dávejte pozor na předposlední řádek kódu. V interpretoru Pythonu příkaz print () vrátil proměnné x a y z globálního oboru.
Hodnoty argumentů nemusí být zadány uvnitř funkce, můžete je zadat ručně, když je voláte:
- > def E_2 (x, y):
- návrat x + y
- > E_2 ("Hello", "Python!") # Pro oddělené slovo vložte před závěrečnou citací místo
- Dobrý den, Python!
- E_2 (5, 4)
- 10
Jak je zřejmé z příkladu s jednoduchou funkcí E_2, výsledek je zcela závislý na typu objektů x a y. V prvním případě E_2 provedl zřetězení a ve druhém případě - aritmetický provoz přidání. Toto je princip polymorfismu a dynamické psaní. Skutečnost, že objekty určují syntaktický význam, způsobuje flexibilitu a jednoduchost jazyka. Nemusíte mít čas na zadání typu dat, pomocí kterého funkce funguje.
Pravidlo LEGB
Toto pravidlo platí pro práci s proměnnými v různých oblastech. Ve výchozím nastavení jsou všechna jména, která vytvoříte v těle funkce, považována za místní. A jména v modulu jsou globální. Pokud je to požadováno, může být jménu přiřazena hodnota proměnných nejvyšší úrovně pomocí notlocal a globálních příkazů.
Pravidlo LEGB vysvětluje schéma rozlišení jmen:
- Jakmile interpret nalezne proměnnou uvnitř příkazu def, nejprve vyhledá hodnoty v místním rozsahu.
- Pokud hledání selže, jde o rozsah všech vyčerpávajících příkazů def.
- Potom se tlumočník přesune na globální názvy v nejvyšší úrovni modulu a to, co je označeno jako globální.
- Pokud hledání selže, tlumočník vyhledá jména v integrovaném oboru Python.
Uvažujme o ilustrativním příkladu:
- > L = 85
- > R = 23
- > def příklad_2 (K):
- R = 10
- C = L + K + R
- návrat C
- > příklad_2 (5)
- 100
Proměnné L a R jsou na nejvyšší úrovni a jsou globální názvy. R, C a K jsou lokální proměnné, jelikož přiřazení hodnoty nastává uvnitř příkazu def.
Tlumočník nejdříve provede operaci přidání pro lokální R, C a K, ignoruje proměnnou R mimo příkaz def. Pak hledá L, a pokud to nenajde mezi místními názvy, jde na nejvyšší úroveň.
Co je lambda
Kromě definice v Pythonu mohou být funkce vytvořeny pomocí speciálních výrazů, z nichž jedna je lambda. Jeho původní jméno bylo dáno na počest lambdového počtu jazyka LISP.
Podobně jako def, lambda vytvoří funkci, kterou můžete později volat, ale nespojuje ji s žádným jménem. V praxi se lambda používá, když potřebujete zpozdit provedení fragmentu kódu.
Základy lambda výrazů
Ve vzhledu výrazy lambda připomínají pokyny def. Nejprve je napsáno klíčové slovo lambda, pak argumenty, dvojtečka a samotný výraz:
- > f = lambda x, y, z: x + y + z
- > f (2, 3, 4)
- 9.
Tělo lambdy je jediný výraz, nikoliv blok pokynů. Díky tomu má lambda omezenou schopnost a není tak univerzální jako def. Pouze logika může být implementována v něm, bez času nebo pro smyčky.
Pro lambdu jsou vyhledávací pravidla pro proměnné stejná jako pro def. Názvy zadané mimo výraz jsou globální, uvnitř - místní a vzájemně se navzájem neovlivňují.
Lambda výrazy jsou velmi vhodné vložit do programu. Díky své malé velikosti minimalizují a zjednodušují kód. Ale použití lambdy není zásadní. V Pythonu 3 je instrukce def dostačující pro začátečníky.
- Hieroglyf Python: popis, rysy obsahu a zajímavé fakty
- Python je vývojové prostředí. Python 3 pro začátečníky
- Python pro začátečníky
- Programování her: programy, funkce tvorby a doporučení
- Python - co je to? Programovací jazyk na vysoké úrovni
- Nejpopulárnější programovací jazyky. Programovací jazyky pro začátečníky
- Hodnocení programovacích jazyků 2016
- Python programovací jazyk: smyčky
- Skriptovací programovací jazyky: úkoly, funkce a výhody
- Programování v Pythonu: Seznam
- Vstup a výstup v Pythonu. Vstup a tisk
- Programování v Pythonu. Práce s řetězci
- Jak najdu zbytek dělení v Pythonu?
- Podmíněná konstrukce if. Python: rozlehlost a jednoduchost jazyka
- Python: datové typy, podmínky, požadavky a příklady
- Objektově orientované programování v Pythonu: třídy, popis a funkce
- Co jsou objekty str v Pythonu?
- Práce s objekty souborů: otevřete, přečtěte a zapisujte soubory do Pythonu
- Podmíněné příkazy if / else v jazyce Python: syntaxe a aplikace
- Největší hadi: tygr python
- Nejjednodušší programovací jazyk pro začátečníky