funkcije
Doslej smo vso svojo kodo pisali v app.py, a ko naši programi rastejo, potrebujemo boljši način za organizacijo kode. Našo kodo moramo razdeliti na manjše, bolj obvladljive in vzdržljive dele, ki jih imenujemo funkcije. Funkcija je vsebnik za nekaj vrstic kode, ki izvajajo določeno nalogo.
Na primer, že ste spoznali nekaj vgrajenih funkcij v Pythonu print()
in input()
. Vsaka funkcija ima svoj namen in ve, kako opraviti določeno nalogo. Torej, ko gradimo velike kompleksne programe, bi morali svojo kodo razdeliti na manjše dele, ki jih je mogoče ponovno uporabiti, tj. funkcije.
Razumejmo ta koncept tako, da zgradimo program za tiskanje pozdravnega sporočila.
print('Hi there!')
print('Welcome aboard!')
Tukaj imamo preprost program s samo dvema vrsticama kode. Recimo, da jih bomo potrebovali v drugih programih, da jih postavimo v funkcijo, ki jo lahko ponovno uporabimo.
Naj predstavim rezervirano ključno besedo def
v Pythonu, kar je okrajšava za definiranje in se uporablja za definiranje funkcije.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Zdaj bo ta blok kode definiral funkcijo "greet_user
« z vrsticami kod za tem. Kadarkoli je ta funkcija poklicana, se bosta ti dve vrstici izvedli. Uporabimo tole:
print('start')
greet_user()
print('finish')
Program se izvaja zaporedno, kar pomeni, da bi morali definirati funkcijo, preden jo pokličete v programu.
parametri
Definirane funkcije delujejo nekoliko drugače kot vgrajene funkcije Pythona. Na primer, v primeru print()
funkcija, potrebuje nekaj informacij, ki jih želimo natisniti, vendar naša funkcija pozdrav ne sprejme nobenih informacij. Ali ne bi bilo lepše, če bi lahko posredovali ime uporabnika sem in potem, namesto da rečete "živijo", lahko natisnete ime uporabnika?
To lahko storite tako, da dodate parametre znotraj oklepaja definirane funkcije. Naj vam pokažem:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Zdaj "name
” znotraj oklepaja bo deloval kot lokalna spremenljivka in pri njenem klicu lahko posredujemo ime uporabnika.
greet_user('Shahbaz')
Zdaj je parameter imena nastavljen na "Shahbaz
”. Spremenimo program, da ga bomo izkoristili.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Pomembno je vedeti, da se "ime" v prvi vrstici imenuje parameter, medtem ko se podano ime, tj. Shahbaz, imenuje argument.
Zaženimo ta program.
Torej s temi parametri lahko prejemamo informacije v naših funkcijah.
Zdaj pa naredimo nekaj zanimivega. Recimo, da želite pozdravnemu sporočilu dodati drugo ime. Enostavno je.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Upoštevajte, da ko ima funkcija parameter, moramo posredovati vrednost za ta parameter. Če odstranite ime iz funkcije in zaženete program, bomo prejeli napako. Uporabite lahko tudi več parametrov v eni sami funkciji, ločenih z vejico.
Na primer, greet_user(first_name, last_name):
. Podobno bodo oblikovani tudi argumenti.
Argumenti ključnih besed
Doslej smo se naučili, da moramo vedno, ko definiramo parametre za naše funkcije, vedno posredovati vrednosti, sicer bomo prejeli napako. V zadnjem programu argumenti 'Shahbaz'
in 'Bhatti'
se imenujejo pozicijski argumenti, kar pomeni, da je njihov položaj ali vrstni red pomemben v programu.
V Pythonu imamo drugo vrsto argumentov, imenovane argumenti ključnih besed, pri katerih položaj ni pomemben. Naj vam pokažem, kako delujejo.
Poglej zadnji program. Lahko ga spremenimo takole:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Zdaj first_name
in last_name
so parametri ključnih besed. Njihova mesta lahko zamenjate in rezultat bo enak.
To ne pomeni, da bi morali vedno uporabljati argumente ključnih besed. Večino časa uporabljamo pozicijske argumente, vendar nam v določenih situacijah ti argumenti ključnih besed pomagajo izboljšati berljivost naše kode.
O argumentih ključnih besed morate vedeti še eno stvar. Argumenti ključne besede morajo biti vedno za pozicijskimi argumenti.
Izjava o vrnitvi
Doslej smo se naučili ustvarjati funkcije in jim pošiljati informacije z uporabo njihovih parametrov. Zdaj pa se naučimo, kako ustvariti funkcije, ki vračajo vrednosti. To je še posebej uporabno, če delate neke vrste izračune in želite vrniti rezultat tistemu, ki uporablja vašo funkcijo. Naj vam pokažem.
Določimo funkcijo, ki bo izračunala kvadrat števila.
def square(number):
return number*number
Za vrnitev te številke zunaj funkcije smo uporabili stavek return. Zdaj, če pokličemo to funkcijo, vrne vrednost, podobno kot input()
funkcijo. Natisnimo ga na terminalu.
Lahko trdite, da je enak rezultat mogoče dobiti brez uporabe stavka return. Preverimo.
Vidimo dve stvari, številko 9 in nobene. Kaj se tukaj dogaja?
Ko tolmač Python izvede to kodo, bo najprej poklical kvadratno funkcijo in kontrolnik se premakne na funkcijo. Tukaj izračunamo kvadrat tega danega števila in ga nato natisnemo na terminalu.
Zdaj vse funkcije privzeto vrnejo vrednost none. Torej, če tukaj nimamo stavka return, ga Python privzeto ne vrne. None je predmet, ki predstavlja odsotnost vrednosti. V C, C++, Javi in Javascriptu je kot nič ali nič.
Zaviti!
Upam, da razumete pomen funkcij.
So pomemben vidik učenja Pythona, če nameravate med svojo kariero kodiranja pisati velike in zapletene programe.
Pustite Odgovori