Funkcije u Pythonu: def. Python 3 za početnike
U programskim jezicima funkcije su imenovani dio koda. To su zasebni blokovi u tekstu programa. Određeno korištenjem rezervirane riječi def. U Pythonu se funkcijama mogu pristupiti neograničeno vrijeme iz bilo kojeg dijela skripte.
sadržaj
Zašto trebate funkcije
Funkcije su neophodni alat za programera. Uz pomoć, programer strukturira program, čineći ga razumljivijom i kompaktnijom. Pomoću funkcija možete ponovno upotrijebiti zaseban kôd bez ponovnog pisanja.
Ovo je najjednostavniji način da se zapakira logika izvršavanja pojedinih dijelova programa. To smanjuje količinu i vrijeme koje stručnjak troši na kreiranje skripte.
Kako napisati prvu funkciju
U Pythonu 3 za početnike, njihovo poznavanje programiranja je najjednostavniji funkcijski ispis (). Da biste ga vidjeli u akciji, trebat će vam razvojno okruženje. Da biste to učinili, preuzmite distribuciju jezika s službene stranice i instalirajte Python na računalo.
Otvorite izbornik Start i na popisu programa pronađite Python 3. Proširite ga lijevom tipkom miša. Na popisu koji se otvori pronađite IDLE okruženje i pokrenite ga. Upišite ispis ("Zdravo, Svijet!") I pritisnite "Enter". Tumač će vratiti rezultat vaše prve funkcije.
Neki programeri radije rade u konzoli. Ako ste jedan od njih, pritisnite tipku win + R i upišite python.exe. Otvorit će se normalan tumač, samo uz cmd sučelje. Upišite program na gore opisani način i pritisnite tipku Enter na kraju da biste vidjeli rezultat.
Kako koristiti def
Nove funkcije izrađuju se pomoću def izjave. Oni su jednako učinkoviti kao i ugrađeni ispisi () ili open (), ali se razlikuju od funkcija sastavljanja jezika. Python def odnosi se na izvršne upute. To znači da funkcija ne postoji sve dok ga prevoditelj ne vidi i ne ide na njegovo izvršenje.
Def izjava stvara novi objekt i daje mu naziv. To jest, kada tumač započne implementaciju, stvara novi objekt i povezuje ga s imenom navedenim nakon def. Da biste pohranili podatke u funkcije, možete pridružiti različite atribute.
Sada napišimo funkciju koja vraća izraz "Hello, World!", Samo s def:
- > def hello_mir ():
- print ("Pozdrav, Svijet!")
- > hello_mir () # poziv funkcije
- Pozdrav, Svijet!
Sintaksa funkcije i povratak
Def izjava u Python sastoji se od zaglavlja i napisan je u skladu sa sljedećim pravilima:
- > def
(argument 1, argument 2, argument N):
Nakon zaglavlja slijedi blok uputa, koji počinje s obaveznim uvlačenjem. U IDLE-u, tumač će to učiniti automatski. Ali u notepad ili neki drugi uređivač teksta, možete zaboraviti pritisnuti Tab. Zatim funkcija neće početi. Programski kôd u bloku uputa naziva se funkcijskim tijelom i izvršava se svaki put kad se zove.
Također se u tijelu ponekad vraća:
- def
(argument 1, argument 2, argument N): - ...
- povratak
Povratak izlazi iz funkcije i prosljeđuje rezultat objektu pozivajućem programu. Uputa nije obvezna. Funkcija će raditi bez povratka i završit će kada kontrolna nit dođe do kraja tijela.
Parametri i argumenti
Svaka funkcija može proći parametre koji su navedeni u zagradama nakon def. U Pythonu su pisani kao varijable, odvojene zarezima. Vrijednosti ili reference objekta na ta imena dodjeljuju se u bloku nakon dvotočke. Nakon operacije zadataka obično se nazivaju argumenti, a ne parametri.
Argumenti unutar neke funkcije nisu povezani s objektima izvan nje, pa se nazivaju lokalnim varijablama u programiranju. Opseg je ograničen na blok funkcije koji počinje s def i završava s povratkom. Da bismo to učinili jasnijim, dajte primjer:
- x = 12 # pridjeljuju varijabilne reference na cijele objekte
- y = 34
- > def primjer (x, y): # stvorite funkciju nazvanu primjer
- x = "Pozdrav" # dodjeljuje vrijednosti argumentima x, y
- y = "Python"
- ispisati (x, y, sep = «,»)
- povrat Ništa
- > example (x, y) # poziva funkciju, ne zaboravite odrediti parametre
- Pozdrav, Python
- > print (x, y)
- 12 34
Obratite pozornost na pretposljednju liniju koda. U pitonskom tumaču, naredba print () vratila je varijable x i y iz globalnog opsega.
Vrijednosti argumenata ne moraju biti specificirane unutar funkcije, možete ih ručno unijeti kada ga nazovete:
- > def E_2 (x, y):
- povratak x + y
- > E_2 ("Zdravo", "Python"!) # Da bi se riječi razdvojile, stavite prostor prije zaključnog citiranja
- Pozdrav, Python!
- E_2 (5, 4)
- 10
Kao što se može vidjeti iz primjera jednostavne funkcije E_2, rezultat je potpuno ovisan o vrsti objekata x i y. U prvom slučaju E_2 je izvršio povezanost, au drugom slučaju - aritmetički rad dodavanja. Ovo je načelo polimorfizma i dinamičko tipkanje. Činjenica da objekti određuju sintaktičko značenje, uzrokuje fleksibilnost i jednostavnost jezika. Ne trebate odvojiti vrijeme za određivanje vrste podataka s kojim funkcija funkcionira.
Pravilo LEGB
Ovo se pravilo odnosi na rad s varijablama u različitim opsegima. Prema zadanim postavkama, svi nazivi koje stvorite u funkcijskom tijelu smatraju se lokalnim. A imena u modulu su globalna. Po želji, imenima se može dodijeliti vrijednost najviših varijabli pomoću notlockalnih i globalnih izjava.
Pravilo LEGB objašnjava shemu razlučivanja imena:
- Kada tumač pronađe varijablu unutar def izjave, prvo pretražuje vrijednosti u lokalnom opsegu.
- Ako pretraživanje ne uspije, ona ide u opseg sveobuhvatne def izjave.
- Tada se prevoditelj pomiče na globalna imena u najvišoj razini modula i ono što je označeno kao globalno.
- Ako pretraživanje ne uspije, prevoditelj traži imena u ugrađenom okviru Python.
Razmotrimo ilustrativni primjer:
- > L = 85
- > R = 23
- > def example_2 (K):
- R = 10
- C = L + K + R
- povratak C
- > example_2 (5)
- 100
Varijable L i R su na najvišoj razini i globalna su imena. R, C i K su lokalne varijable, budući da se dodjeljuje vrijednost unutar def izraza.
Tumač prvo izvodi dodatni postupak za lokalne R, C i K, zanemarujući varijablu R izvan def izjave. Onda traži L, a ako ga ne pronađe među lokalnim imenima, ide na najvišu razinu.
Što je lambda
Osim def, u Pythu se funkcije mogu kreirati posebnim izrazima, od kojih je jedan lambda. Njegov izvorni naziv dobio je u čast lambda računu LISP jezika.
Kao def, lambda stvara funkciju koju možete nazvati kasnije, ali ga ne povezuje ni s jednim imenom. U praksi, lambda se koristi kada morate odgoditi izvršavanje isječka koda.
Osnove lambda izraza
U izgledu, lambda izrazi slični su def uputama. Prvo, ključna riječ lambda je napisana, zatim argumenti, dvotočka i izraz:
- > f = lambda x, y, z: x + y + z
- > f (2, 3, 4)
- 9
Tijelo lambda je samo jedan izraz, a ne blok uputa. Zbog toga, lambda je ograničena u sposobnostima, a ne kao svestran kao def. U njoj se može implementirati samo logika, bez vremena ili za petlje.
Za lambda, pravila pretraživanja za varijable su ista kao i za def. Nazivi navedeni izvan izraza su globalni, unutar - lokalni i ne utječu jedni na druge na bilo koji način.
Lambda izrazi su vrlo prikladni za ugradnju u program. Zbog njihove male veličine, oni minimiziraju i pojednostavljuju kôd. Ali upotreba lambda nije temeljna. U Pythonu 3, def uputa je dovoljna za početnike.
- Python je razvojno okruženje. Python 3 za početnike
- Ciklus s postcondition i petlja s preduvjetom
- Python za početnike
- Programiranje igara: programi, značajke stvaranja i preporuke
- Python - što je to? Visoki programski jezik
- Python programski jezik: petlje
- Ciklus za: Pascal za početnike
- Skriptni programski jezici: zadaci, značajke i prednosti
- PHP: vrijeme izvršenja skripte u praksi
- Programiranje u Pythonu: Popis
- Ulaz i izlaz u Pythonu. Ulaz i ispis
- Programiranje u Pythonu. Rad s žicama
- Kako mogu pronaći ostatak podjele u Pythonu?
- Što je dinamičko tipkanje?
- Uvjetna izgradnja. Python: prostranost i jednostavnost jezika
- Python: vrste podataka, uvjeti, zahtjevi i primjeri
- Objektno orijentirano programiranje u Pythonu: klase, opis i značajke
- Što su objekti u Pythonu?
- Rad s objektima datoteka: otvaranje, čitanje i pisanje datotekama u Pythonu
- Uvjetne izjave ako / drugo u Pythonu: sintaksa i primjena
- Najlakši programski jezik za početnike