Funkcije u Pythonu: def. Python 3 za početnike

U programskim jezicima funkcija se naziva dijelom koda. To su zasebni blokovi u tekstu programa. Definira se pomoću rezervirane riječi def. U Pythonu možete pristupiti funkcijama neograničenog broja puta iz bilo kojeg dijela skripte.

Zašto je potrebna funkcija

Funkcije - ovo je nezamjenjiv alat za programera. Uz njihovu pomoć, programer kreira program, čineći ga jasnijim i kompaktnijim. Pomoću funkcija možete postići višestruku uporabu odvojenog dijela koda bez njegovog ponovnog pisanja.


To je najlakši način da se spakira logika izvršenja pojedinih dijelova programa. Time se smanjuje količina i vrijeme koje stručnjak troši na izradu skripte.

Kako napisati prvu funkciju

U Pythonu 3 za početnike, njegovo poznavanje programiranja je najjednostavnija funkcija print (). Da biste je 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 svoje računalo. Otvorite izbornik Start i pronađite Python na popisu aplikacija 3. Proširite ga lijevom tipkom miša. Na popisu pronađite IDLE okruženje i pokrenite ga. Upišite print ("Hello, World!") I pritisnite "Enter". Tumač će vratiti rezultat vaše prve funkcije. Neki programeri radije rade u konzoli. Ako ste na tom broju, kliknite win + R i upišite python.exe. Otvara se normalni tumač s cmd sučeljem. Upišite program kao što je gore opisano i pritisnite Enter na kraju da biste vidjelirezultat



Kako se koristi def

Nove se funkcije stvaraju pomoću izjave def. One su jednako učinkovite kao i ugrađeni print () ili open (), ali se razlikuju od značajki jezika za kompilaciju. Python def se odnosi na izvršne upute. To znači da funkcija ne postoji sve dok je tumač ne vidi i neće ući u njegovo izvršenje. Izjava def stvara novi objekt i daje mu ime. To jest, kada tumač počne implementirati, on stvara novi objekt i veže ga na ime dano nakon def. Možete pridružiti različite atribute za spremanje podataka u funkcije. Sada napišite funkciju koja vraća frazu "Zdravo, Svijet!", Samo pomoću def:
  • def zdravstvuj ():
  • print ("Zdravo, Svijet!")
  • zdravstvuj_mir () # poziv funkcije
  • Pozdrav, Svijet!
  • Sintaksa funkcije i povratak

    Def klauzula u Pythonu sastoji se od zaglavlja i piše se pomoću sljedećih pravila:
  • def (argument 1 argument 2 argument N):
  • Nakon zaglavlja slijedi blok naredbi uz obvezno povlačenje. U IDLE, tumač će to učiniti automatski. No u bilježnici ili drugom uređivaču teksta možete zaboraviti kliknuti Tab. Tada se funkcija neće pokrenuti. Programski kôd u bloku s uputama naziva se tijelo funkcije i izvršava se svaki put kad se pozove. Također, u tijelu ponekad postoji povratak:
  • def (argument 1 argument 2 argument N):
  • return
  • Povratak vraća funkciju i šalje objekt rezultata u program. Uputa je opcionalna. Funkcija će raditi bez povratka i završit će,kada protok kontrole dosegne kraj njezina tijela.

    Parametri i argumenti

    Svaka se funkcija može proslijediti parametrima koji su specificirani u zagradama nakon def. U Pythonu, oni se pišu kao varijable odvojene zarezima. Vrijednosti ili reference na objekte za ta imena dodjeljuju se dvotočkom u bloku. Nakon operacije dodjeljivanja oni se nazivaju argumentima, a ne parametrima. Argumenti unutar funkcije nisu povezani s objektima izvan njega, tako da su u programiranju oni povezani s lokalnim varijablama. Područje vidljivosti ograničeno je funkcijskim blokom koji počinje def i završava se povratkom. Da bi to bilo jasnije, navedite primjer:
  • x = 12 # dodijeliti varijable reference na cijele objekte
  • y = 34
  • def primjer (x, y): # stvoriti funkciju s njima Primjer
  • x = "Pozdrav" # Dodijelite vrijednosti argumenata x, y
  • y = "Python"
  • print (x, y, sep = ",")
  • vrati Nema
  • primjer (x, y) # pozvati funkciju bez zaboravljanja parametara
  • Pozdrav, Python
  • print (x, y) 37]
  • 1234
  • Zabilježite pretposljednji korak koda. U Python interpreteru, print () naredba vraća x i y varijable iz globalnog opsega. Vrijednost argumenata ne mora biti specificirana unutar funkcije, možete ih unijeti ručno kada se ona zove:
  • def E_2 (x, y):
  • return x + y
  • "" Python! ") # Tako da su riječi odvojene, stavite razmak prije zatvaranja šapa
  • Zdravo, Python!
  • E_2 (5 4)
  • 10
  • Kao što se može vidjeti iz primjera s jednostavnom funkcijom E_2, rezultat u cijelosti ovisi o vrsti objekata x i y. U prvom slučaju, E_2 je izvodio ulančavanje, au drugom aritmetikaoperacija dodavanja. To je načelo polimorfizma i dinamičke tipizacije. Činjenica da objekti određuju sintaktičko značenje određuje fleksibilnost i jednostavnost jezika. Nema potrebe gubiti vrijeme navodeći vrstu podataka s kojom funkcija funkcionira.

    LEGB pravilo

    Ovo se pravilo odnosi na rad s varijablama u različitim područjima vidljivosti. Prema zadanim postavkama, sva imena koja stvorite u tijelu funkcije smatraju se lokalnim. Imena u modulu su globalna. Ako želite imena, možete dodijeliti vrijednosti varijabli najviše razine koristeći nelokalne i globalne upute. LEGB pravilo objašnjava shemu razlučivanja imena:
  • Čim interpreter pronađe varijablu unutar def izjave, najprije traži vrijednosti u lokalnom opsegu.
  • Ako pretraživanje ne uspije, premješta se u opseg bilo koje sveobuhvatne izjave def.
  • Zatim se tumač pomiče na globalna imena na gornjoj razini modula i one koji su označeni kao globalni.
  • Ako pretraživanje ne daje rezultate, tumač traži imena u ugrađenom opsegu Python jezika.
  • Razmotrimo konkretan primjer:
  • L = 85
  • R = 23
  • def example_2 (K):
  • R = 10
  • C = L + K + R
  • povratak C
  • example_2
  • 100
  • Varijable L i R su na višoj razini i predstavljaju globalna imena. R, C i K su lokalne varijable, jer se dodjeljivanje vrijednosti događa unutar def izjave. Interpreter izvodi operaciju dodavanja za lokalne R, C i K, ignorirajući varijablu R izvan izjave def. Tada tražite L, a ne nalazim ga među imenima lokalnih,pomiče na višu razinu.

    Što je lambda

    Osim def, Pythonove funkcije mogu se kreirati korištenjem posebnih izraza, od kojih je jedan lambda. Svoje izvorno ime dobio je u čast Lambda-račun LISP jezika. Kao def, lambda stvara funkciju koja se može nazvati u budućnosti, ali je ne povezuje s bilo kojim imenom. U praksi, lambda se koristi kada je potrebno odgoditi izvršenje isječka koda.

    Principi lambda-izraza

    Izgled lambda izraza nalikuje uputama def. Prvi je ključna riječ lambda, zatim argumenti, dvotočka i sam izraz:
  • f = lambda x, y, z: x + y + z
  • f (234)
  • 9
  • Lambda tijelo je samo jedan izraz, a ne blok uputa. Zbog toga je lambda ograničena u mogućnostima, a ne kao univerzalna kao def. Može se samo implementirati logika, bez ciklusa dok je za ili za. Za lambda postoje slična pravila def za varijable pretraživanja. Imena izvan izraza su globalna, iznutra su lokalna i nemaju utjecaja jedni na druge. Lambda izraz je vrlo prikladan za ugradnju u program. Zbog male veličine smanjuju i pojednostavljuju kod. Ali uporaba lambda nije temeljna. U Pythonu 3 početnici će imati dovoljno uputa za rad.

    Povezane publikacije