Funkcije v Python: def. Python 3 za začetnike

V programskih jezikih se funkcija imenuje del kode. To so ločeni bloki v besedilu programa. Opredeljeno z uporabo rezervirane besede def. V Pythonu lahko dostopate do funkcij neomejenega števila krat iz katerega koli dela skripta.

Zakaj je potrebna funkcija

Funkcije - To je nepogrešljivo orodje za programerja. Razvijalec z njihovo pomočjo oblikuje program, zaradi česar je jasnejši in kompaktnejši. S pomočjo funkcij lahko dosežete večkratno uporabo ločenega dela kode brez njegovega ponovnega pisanja.


To je najlažji način, da se pakira logika izvajanja posameznih delov programa. To zmanjša količino in čas, ki ga strokovnjak porabi za ustvarjanje skripta.

Kako napisati prvo funkcijo

V Python 3 za začetnike je njeno poznavanje programiranja najpreprostejša funkcija print (). Da bi jo videli v akciji, boste potrebovali razvojno okolje. To storite tako, da prenesete distribucijo jezikov iz uradne strani in namestite Python v računalnik. Odprite meni Start in poiščite Python na seznamu aplikacij 3. Razširite ga z levim gumbom miške. Na seznamu poiščite okolje IDLE in ga zaženite. Vnesite print ("Hello, World!") In pritisnite "Enter". Interpreter bo vrnil rezultat vaše prve funkcije. Nekateri programerji raje delajo v konzoli. Če ste v tej številki, kliknite win + R in vnesite python.exe. Odpre se običajen tolmač z vmesnikom cmd. Vnesite program, kot je opisano zgoraj, in pritisnite Enter na koncu, da viditerezultat



Kako uporabljati def

Nove funkcije so ustvarjene s pomočjo stavka def. So enako učinkoviti kot vgrajeni print () ali open (), vendar se razlikujejo od funkcij jezika za prevajanje. Python def se nanaša na izvedljiva navodila. To pomeni, da funkcija ne obstaja, dokler je tolmač ne vidi in ne bo šel v njeno izvedbo. Stavek def ustvarja nov objekt in mu poda ime. To pomeni, da ko tolmač začne izvajati, ustvari nov predmet in ga poveže z imenom, podanim po def. Za shranjevanje podatkov v funkcije lahko priložite različne atribute. Zdaj pa napiši funkcijo, ki vrne frazo "Pozdravljeni, svet!", Samo z uporabo def:
  • def zdravvstvuй_mir ():
  • print ("Zdravo, svet!")
  • zdravвствуй_мир () # klic funkcije
  • Pozdravljeni, svet!
  • Sintaksa funkcije in vrnitev

    Klavzula def v Pythonu je sestavljena iz glave in je napisana z naslednjimi pravili:
  • def (argument 1 argument 2 argument N):
  • Po glavi je blok navodil, ki se začne z obveznim umikom. V IDLE bo tolmač to storil samodejno. Toda v beležnici ali drugem urejevalniku besedila lahko pozabite klikniti Tab. Nato se funkcija ne zažene. Programska koda v bloku z navodili se imenuje telo funkcije in se izvaja vsakič, ko jo pokličete. Tudi v telesu je včasih vrnjeno:
  • def (argument 1 argument 2 argument N):
  • return
  • Return vrne funkcijo in pošlje rezultat objekta v program. Navodilo je neobvezno. Funkcija bo delovala brez povratka in končala se bo,ko tok nadzora doseže konec njenega telesa.

    Parametri in argumenti

    Vsaka funkcija se lahko posreduje parametrom, ki so podani v oklepajih po def. V Pythonu so zapisani kot spremenljivke, ločene z vejicami. Vrednosti ali sklici na objekte za ta imena so v bloku dodeljeni z dvopičjem. Po operaciji dodelitve se imenujejo argumenti in ne parametri. Argumenti znotraj funkcije niso povezani z objekti zunaj njega, zato so pri programiranju povezani z lokalnimi spremenljivkami. Območje vidnosti je omejeno s funkcijskim blokom, ki se začne z def in konča z vrnitvijo. Da bi bilo bolj jasno, navedite primer:
  • x = 12 # dodeli spremenljivke, ki se nanašajo na celoštevilne objekte
  • y = 34
  • def primer (x, y): # ustvarja funkcijo z njimi Primer
  • x = "Pozdravljeni" # Dodeli vrednosti argumentov x, y
  • y = "Python"
  • natisni (x, y, sep = ",")
  • vrne Nič
  • primer (x, y) # pokliči funkcijo, ne da bi pozabil parametre
  • Pozdravljeni, Python
  • print (x, y) 37]
  • 1234
  • Upoštevajte predzadnji korak kode. V interpretatorju Python ukaz print () vrne spremenljivke x in y iz globalnega obsega. Vrednosti argumentov ni treba določiti znotraj funkcije, ročno jih lahko vnesete, ko se kličejo:
  • def E_2 (x, y):
  • return x + y
  • E_2 ("Zdravo, "" Python! ") # Da bi bile besede ločene, postavite presledek, preden zaprete tace
  • Pozdravljeni, Python!
  • E_2 (5 4)
  • 10
  • Kot je razvidno iz primera s preprosto funkcijo E_2, je rezultat v celoti odvisen od vrste objektov x in y. V prvem primeru je E_2 izvedel združevanje, v drugem pa aritmetičnododajanje. To je načelo polimorfizma in dinamične tipizacije. Dejstvo, da predmeti določajo skladenjski pomen, določa fleksibilnost in preprostost jezika. Ni potrebe, da bi zapravljali čas z navedbo vrste podatkov, s katerim funkcija deluje.

    Pravilo LEGB

    To pravilo velja za delo s spremenljivkami na različnih področjih vidljivosti. Privzeto so vsa imena, ki jih ustvarite v telesu funkcije, lokalna. Imena v modulu so globalna. Če želite imena, lahko vrednosti spremenljivk najvišje ravni dodelite z nelokalnimi in globalnimi navodili. Pravilo LEGB pojasnjuje shemo za razreševanje imena:
  • Takoj, ko interpreter najde spremenljivko znotraj stavka def, najprej poišče vrednosti v lokalnem obsegu.
  • Če iskanje ne uspe, se premakne na področje katere koli izčrpne izjave def.
  • Nato se tolmač premakne na globalna imena na zgornji ravni modula in na tista, ki so označena kot globalna.
  • Če iskanje ne prinese rezultatov, tolmač poišče imena v vgrajenem obsegu jezika Python.
  • Poglejmo konkreten primer:
  • L = 85
  • R = 23
  • def primer_2 (K):
  • R = 10
  • C = L + K + R
  • vrnitev C
  • primer_2
  • 100
  • Spremenljivke L in R sta na zgornji ravni in sta globalna imena. R, C in K so lokalne spremenljivke, saj se dodelitev vrednosti dogaja znotraj stavka def. Interpreter izvede operacijo dodajanja za lokalne R, C in K, pri čemer zanemari spremenljivko R zunaj stavka def. Potem iščete L in ne najdete med imeni lokalnih,se premakne na zgornjo raven.

    Kaj je lambda

    Poleg def lahko funkcije Pythona ustvarimo s posebnimi izrazi, od katerih je eden lambda. Prvotno ime je prejel v čast Lambda-računu jezika LISP. Tako kot def, lambda ustvari funkcijo, ki jo lahko imenujemo v prihodnosti, vendar je ne povezuje z nobenim imenom. V praksi se lambda uporablja, kadar je potrebno odložiti izvajanje kode.

    Lambda-izrazna načela

    Lambda izrazi so po videzu podobni navodilom def. Prvi je ključna beseda lambda, potem argumenti, dvopičje in sam izraz:
  • f = lambda x, y, z: x + y + z
  • f (234)
  • 9
  • Lambda telo je en sam izraz, ne pa blok navodil. Zaradi tega je lambda omejena v zmožnostih in ne kot univerzalna kot def. Lahko se izvaja samo logika, brez ciklov, medtem ko za ali za. Za lambda obstajajo podobna pravila def za spremenljivke iskanja. Imena zunaj izraza so globalna, notranja so lokalna in nimajo učinka drug na drugega. Lambda izraz je zelo primeren za vgradnjo v program. Zaradi majhnosti zmanjšujejo in poenostavljajo kodo. Vendar uporaba lambda ni bistvena. V Pythonu 3 bodo začetniki imeli dovolj def navodil za delo.

    Sorodne publikacije