Funtzioak
Orain arte, gure kode guztia app.py-n idazten aritu gara, baina gure programak hazten diren heinean, gure kodea antolatzeko modu hobea behar dugu. Funtzioak deitzen ditugun zati txikiago, kudeatuago eta mantendugarriagoetan zatitu behar dugu gure kodea. Funtzioa zeregin zehatz bat egiten duten kode lerro batzuen edukiontzia da.
Esate baterako, dagoeneko Python-en integratutako funtzio batzuk ezagutu dituzu print()
input()
. Funtzio bakoitzak helburu bat du eta badaki zeregin zehatz bat egiten. Beraz, programa konplexu handiak eraikitzen ditugunean, gure kodea zati berrerabilgarri txikiagoetan banatu beharko genuke, hau da, funtzioetan.
Uler dezagun kontzeptu hau agur-mezu bat inprimatzeko programa bat eraikiz.
print('Hi there!')
print('Welcome aboard!')
Hemen bi kode-lerro bakarrik dituen programa sinple bat dugu. Orain, demagun, beste programa batzuetan beharko ditugula berrerabil ditzakegun funtzio batean jartzeko.
Utzidazu erreserbatutako gako-hitz bat aurkezten def
Python-en, definitzeko laburra dena eta funtzio bat definitzeko erabiltzen dena.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Orain kode bloke honek funtzio bat definituko du "greet_user
” horren ondoren kode lerroekin. Funtzio honi deitzen zaion bakoitzean, bi lerro hauek exekutatuko dira. Erabili dezagun hau:
print('start')
greet_user()
print('finish')
Programa sekuentzialki exekutatzen da, hau da, funtzio bat definitu beharko zenuke programan deitu aurretik.
parametroak
Definitutako funtzioek Python-en funtzio integratuak baino apur bat ezberdinean funtzionatzen dute. Adibidez, ren kasuan print()
funtzio bat, inprimatu nahi dugun informazio batzuk hartzen ditu, baina gure agurra funtzioak ez du informaziorik hartzen. Ez al litzateke politagoa izango erabiltzailearen izena hemen eta gero, “kaixo” esan beharrean, erabiltzailearen izena inprimatu ahal izango bazenu?
Hau egin dezakezu definitutako funtzioaren parentesiaren barruan parametroak gehituz. Erakutsi dezadan:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Orain "name
” parentesiaren barruan aldagai lokal baten moduan jokatuko da eta erabiltzailearen izena pasa dezakegu deitzean.
greet_user('Shahbaz')
Orain izena parametroa "-n dago ezarritaShahbaz
”. Alda dezagun programa hura erabiltzeko.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Kontuan izan behar den gauza garrantzitsu bat da lehen lerroko "izena" Parametroa deitzen zaiola, eta ematen den izena, alegia, Shahbaz, argumentu deitzen zaiola.
Goazen aurrera eta exekutatu programa hau.
Beraz, parametro hauekin, informazioa jaso dezakegu gure funtzioetan.
Orain, egin dezagun zerbait interesgarria. Demagun agur-mezuari beste izen bat gehitu nahi diozula. Sinplea da.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Orain kontuan izan funtzio batek parametro bat duenean, parametro horren balio bat pasatzera behartuta gaudela. Funtziotik izena kendu eta programa exekutatzen baduzu, errore bat jasoko dugu. Funtzio bakarrean hainbat parametro ere erabil ditzakezu, komaz bereizita.
Esate baterako, greet_user(first_name, last_name):
. Argudioak ere formatua izango dute antzera.
Gako-argudioak
Orain arte, gure funtzioetarako parametroak definitzen ditugunean beti balioak eman behar ditugula ikasi dugu, bestela errore bat izango dugu. Azken programan, argudioak 'Shahbaz'
'Bhatti'
posizio-argumentuak deitzen dira, hau da, haien posizioak edo ordenak axola du programan.
Python-en, gako-argumentuak izeneko beste argumentu mota bat dugu, eta posizioak berdin dio. Utzidazu nola funtzionatzen duten erakusten.
Begira azkeneko programa. Honela alda dezakegu:
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')
Orain first_name
last_name
gako-parametroak dira. Beren tokiz alda dezakezu eta emaitza berdina izango da.
Orain horrek ez du esan nahi beti gako-argumentuak erabili behar ditugunik. Gehienetan posizio-argumentuak erabiltzen ditugu, baina zenbait egoeratan, gako-argumentu hauek gure kodearen irakurgarritasuna hobetzen laguntzen digute.
Beste gauza bat jakin behar duzu gako-argudioei buruz. Gako-argumentuak beti etorri behar dira argumentu posizioen ondoren.
Itzultzeko Adierazpena
Orain arte funtzioak sortzen eta haien parametroak erabiliz informazioa bidaltzen ikasi dugu. Orain ikas dezagun nola sortzen diren balioak itzultzen dituzten funtzioak. Hau bereziki erabilgarria da kalkulu mota batzuk egiten ari bazara eta emaitza zure funtzioa erabiltzen ari denari itzuli nahi badiozu. Utzidazu erakusten.
Definitu dezagun zenbaki baten karratua kalkulatuko duen funtzio bat.
def square(number):
return number*number
Return adierazpena erabili dugu zenbaki hau funtziotik kanpo itzultzeko. Orain, funtzio honi deitzen badiogu, balio bat itzultzen du input()
funtzioa. Inprima dezagun terminalean.
Argudia dezakezu emaitza bera lor daitekeela return adierazpena erabili gabe. Ikus dezagun.
Bi gauza ikusten ditugu, 9 zenbakia, eta bat ere ez. Zer gertatzen da hemen?
Python interpreteak kode hau exekutatzen duenean, lehenengo karratu funtzioari deituko dio eta kontrola funtziora mugitzen da. Hemen emandako zenbaki honen karratua kalkulatuko dugu eta gero terminalean inprimatuko dugu.
Orain, lehenespenez, funtzio guztiek none balioa itzultzen dute. Beraz, hemen ez badugu return adierazpenik, lehenespenez Python-ek bat ere ez du itzultzen. None baliorik eza adierazten duen objektua da. C, C++, Java eta Javascript-en ezer edo nulua bezalakoa da.
Bilatu!
Funtzioen garrantzia ulertu izana espero dut.
Python-en ikaskuntzaren alderdi esanguratsuak dira kodeketa-karreran zehar programa handi eta konplexuak idazteko asmoa baduzu.
Utzi erantzun bat