Funksione
Deri më tani, ne kemi shkruar të gjithë kodin tonë në app.py, por ndërsa programet tona rriten, na duhet një mënyrë më e mirë për të organizuar kodin tonë. Ne duhet ta ndajmë kodin tonë në copa më të vogla, më të menaxhueshme dhe më të mirëmbajtura, të cilat ne i quajmë funksione. Funksioni është një enë për disa rreshta kodi që kryejnë një detyrë specifike.
Për shembull, ju keni mësuar tashmë për disa funksione të integruara në Python print()
input()
. Çdo funksion ka një qëllim dhe di të kryejë një detyrë specifike. Pra, kur ndërtojmë programe të mëdha komplekse, duhet ta ndajmë kodin tonë në copa më të vogla të ripërdorshme, p.sh. funksione.
Le ta kuptojmë këtë koncept duke ndërtuar një program për printimin e një mesazhi përshëndetjeje.
print('Hi there!')
print('Welcome aboard!')
Këtu kemi një program të thjeshtë me vetëm dy rreshta kodi. Tani, le të themi, do të na duhen në programe të tjera për t'i vendosur ato në një funksion që mund t'i ripërdorim.
Më lejoni të prezantoj një fjalë kyçe të rezervuar def
në Python, i cili është shkurtim për define dhe përdoret për përcaktimin e një funksioni.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Tani ky bllok kodi do të përcaktojë një funksion "greet_user
” me rreshtat e kodeve pas kësaj. Sa herë që thirret ky funksion, këto dy rreshta do të ekzekutohen. Le të përdorim këtë:
print('start')
greet_user()
print('finish')
Programi ekzekutohet në mënyrë sekuenciale, që do të thotë se duhet të përcaktoni një funksion përpara se ta thërrisni në program.
Parameters
Funksionet e përcaktuara funksionojnë pak më ndryshe se funksionet e integruara të Python. Për shembull, në rastin e print()
një funksion, kërkon disa informacione që duam të printojmë, por funksioni ynë i përshëndetjes nuk merr asnjë informacion. A nuk do të ishte më mirë nëse mund të kaloni emrin e përdoruesit këtu dhe pastaj, në vend që të thoni "përshëndetje", mund të printoni emrin e përdoruesit?
Këtë mund ta bëni duke shtuar parametrat brenda kllapave të funksionit të përcaktuar. Më lër të të tregoj:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Tani "name
” brenda kllapave do të veprojë si një ndryshore lokale dhe ne mund të kalojmë emrin e përdoruesit kur e thërrasim atë.
greet_user('Shahbaz')
Tani parametri i emrit është vendosur në "Shahbaz
“. Le të ndryshojmë programin për ta përdorur atë.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Një gjë e rëndësishme për t'u theksuar është se "emri" në rreshtin e parë quhet Parametër ndërsa emri i dhënë dmth Shahbaz quhet argument.
Le të shkojmë përpara dhe të ekzekutojmë këtë program.
Pra, me këto parametra, ne mund të marrim informacion në funksionet tona.
Tani le të bëjmë diçka interesante. Le të themi se dëshironi të shtoni një emër tjetër në mesazhin e përshëndetjes. Është e thjeshtë.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Tani vini re se kur një funksion ka një parametër, ne jemi të detyruar të kalojmë një vlerë për atë parametër. Nëse hiqni emrin nga funksioni dhe ekzekutoni programin, do të kemi një gabim. Ju gjithashtu mund të përdorni parametra të shumtë në një funksion të vetëm, të ndarë me presje.
Për shembull, greet_user(first_name, last_name):
. Argumentet gjithashtu do të formatohen në mënyrë të ngjashme.
Argumentet e fjalëve kyçe
Deri më tani, kemi mësuar se sa herë që përcaktojmë parametra për funksionet tona, duhet të japim gjithmonë vlera, përndryshe do të kemi një gabim. Në programin e fundit, argumentet 'Shahbaz'
'Bhatti'
quhen argumente pozicionale, që do të thotë se pozicioni ose rendi i tyre ka rëndësi në program.
Në Python, ne kemi një lloj tjetër argumenti të quajtur argumentet e fjalëve kyçe, për të cilat pozicioni nuk ka rëndësi. Më lejoni t'ju tregoj se si funksionojnë.
Shikoni programin e fundit. Mund ta modifikojmë si kjo:
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')
Tani first_name
last_name
janë parametrat e fjalëve kyçe. Ju mund të ndërroni vendet e tyre dhe rezultati do të jetë i njëjtë.
Tani kjo nuk do të thotë që ne duhet të përdorim gjithmonë argumentet e fjalëve kyçe. Shumicën e kohës ne përdorim argumente pozicionale, por në situata të caktuara, këto argumente të fjalëve kyçe na ndihmojnë të përmirësojmë lexueshmërinë e kodit tonë.
Ekziston edhe një gjë që duhet të dini për argumentet e fjalëve kyçe. Argumentet e fjalëve kyçe duhet të vijnë gjithmonë pas argumenteve të pozicionit.
Deklarata e Kthimit
Deri më tani kemi mësuar se si të krijojmë funksione dhe t'u dërgojmë atyre informacion duke përdorur parametrat e tyre. Tani le të mësojmë se si të krijojmë funksione që kthejnë vlera. Kjo është veçanërisht e dobishme nëse jeni duke bërë një lloj llogaritjeje dhe dëshironi t'ia ktheni rezultatin kujtdo që përdor funksionin tuaj. Më lër të të tregoj.
Le të përcaktojmë një funksion i cili do të llogarisë katrorin e një numri.
def square(number):
return number*number
Ne kemi përdorur deklaratën e kthimit për të kthyer këtë numër jashtë funksionit. Tani, nëse e quajmë këtë funksion, ai kthen një vlerë ashtu si ajo input()
funksionin. Le ta printojmë në terminal.
Ju mund të argumentoni se i njëjti rezultat mund të merret pa përdorur deklaratën e kthimit. Le ta kontrollojmë.
Ne shohim dy gjëra, numrin 9 dhe asnjë. Çfarë po ndodh këtu?
Kur interpretuesi Python ekzekuton këtë kod, së pari do të thërrasë funksionin katror dhe kontrolli kalon te funksioni. Këtu llogarisim katrorin e këtij numri të dhënë dhe më pas e printojmë në terminal.
Tani, si parazgjedhje, të gjitha funksionet nuk kthejnë vlerën asnjë. Pra, nëse nuk kemi një deklaratë kthimi këtu, si parazgjedhje Python nuk kthen asnjë. Asnjë nuk është një objekt që përfaqëson mungesën e një vlere. Është si asgjë ose null në C, C++, Java dhe Javascript.
Përfundoje!
Shpresoj se e keni kuptuar rëndësinë e funksioneve.
Ato janë një aspekt i rëndësishëm i mësimit të Python nëse planifikoni të shkruani programe të mëdha dhe komplekse gjatë karrierës suaj të kodimit.
Lini një Përgjigju