nisfarm.ru

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í.python def

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.python 3 pro začátečníky

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.příkazy python

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.funkce python def

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:

  1. Jakmile interpret nalezne proměnnou uvnitř příkazu def, nejprve vyhledá hodnoty v místním rozsahu.
  2. Pokud hledání selže, jde o rozsah všech vyčerpávajících příkazů def.
  3. 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í.
  4. 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.lambda výraz

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.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru