Funzjonijiet
S'issa, ilna niktbu l-kodiċi tagħna kollu fl-app.py, iżda hekk kif il-programmi tagħna jikbru, għandna bżonn mod aħjar biex norganizzaw il-kodiċi tagħna. Irridu nkissru l-kodiċi tagħna f'biċċiet iżgħar, aktar maniġġabbli, u aktar li jistgħu jinżammu li nsejħu funzjonijiet. Il-funzjoni hija kontenitur għal ftit linji ta 'kodiċi li jwettqu kompitu speċifiku.
Pereżempju, diġà tgħallimt dwar ftit funzjonijiet integrati f'Python print()
u, input()
. Kull funzjoni għandha skop u taf kif twettaq kompitu speċifiku. Għalhekk, meta nibnu programmi kumplessi kbar, għandna nkissru l-kodiċi tagħna f'biċċiet iżgħar li jistgħu jerġgħu jintużaw, jiġifieri funzjonijiet.
Ejja nifhmu dan il-kunċett billi nibnu programm għall-istampar ta 'messaġġ ta' tislima.
print('Hi there!')
print('Welcome aboard!')
Hawnhekk għandna programm sempliċi b'żewġ linji ta 'kodiċi biss. Issa, ejja ngħidu, se jkollna bżonnhom fi programmi oħra biex inpoġġuhom f'funzjoni li nistgħu nużaw mill-ġdid.
Ħa nintroduċi keyword riservata def
f'Python, li huwa qasir għal define u huwa użat biex jiddefinixxi funzjoni.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Issa dan il-blokk ta 'kodiċi se jiddefinixxi funzjoni "greet_user
” mal-linji ta 'kodiċi wara dak. Kull meta tissejjaħ din il-funzjoni, dawn iż-żewġ linji se jiġu eżegwiti. Ejja nużaw dan:
print('start')
greet_user()
print('finish')
Il-programm jiġi esegwit b'mod sekwenzjali, li jfisser li jkollok tiddefinixxi funzjoni qabel issejjaħha fil-programm.
parametri
Il-funzjonijiet definiti jaħdmu ftit differenti mill-funzjonijiet mibnija fil-Python. Per eżempju, fil-każ ta print()
funzjoni, tieħu xi informazzjoni li rridu nipprintjaw, iżda l-funzjoni greet tagħna ma tieħu ebda informazzjoni. Ma jkunx aħjar jekk tista' tgħaddi l-isem tal-utent hawn u mbagħad, minflok tgħid “hi there”, tista' tipprintja l-isem tal-utent?
Tista 'tagħmel dan billi żżid il-parametri ġewwa l-parentesi tal-funzjoni definita. Ħallini nurik:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Issa l-"name
” ġewwa l-parentesi se taġixxi bħal varjabbli lokali u nistgħu ngħaddu l-isem tal-utent meta nsejħulha.
greet_user('Shahbaz')
Issa l-parametru tal-isem huwa ssettjat għal "Shahbaz
”. Ejja nbiddlu l-programm biex nagħmlu użu minnu.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Ħaġa importanti li wieħed jinnota hija li l-"isem" fl-ewwel linja jissejjaħ Parametru filwaqt li l-isem ipprovdut jiġifieri Shahbaz jissejjaħ argument.
Ejja nimxu 'l quddiem u mexxi dan il-programm.
Allura b'dawn il-parametri, nistgħu nirċievu informazzjoni fil-funzjonijiet tagħna.
Issa, ejja nagħmlu xi ħaġa interessanti. Ejja ngħidu li trid iżżid isem ieħor mal-messaġġ tat-tislima. Huwa sempliċi.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Issa innota li meta funzjoni jkollha parametru, aħna obbligati li ngħaddu valur għal dak il-parametru. Jekk tneħħi l-isem mill-funzjoni u tħaddem il-programm, aħna se jkollna żball. Tista 'wkoll tuża parametri multipli f'funzjoni waħda, separati b'virgola.
Per eżempju, greet_user(first_name, last_name):
. L-argumenti se jkunu wkoll ifformattjati bl-istess mod.
Argumenti Keyword
S'issa, tgħallimna li kull meta niddefinixxu parametri għall-funzjonijiet tagħna għandna dejjem nipprovdu valuri inkella jkollna żball. Fl-aħħar programm, l-argumenti 'Shahbaz'
u, 'Bhatti'
jissejħu argumenti pożizzjonali, jiġifieri l-pożizzjoni tagħhom jew kwistjonijiet ta 'ordni fil-programm.
F'Python, għandna tip ieħor ta 'argument imsejjaħ argumenti keyword, li għalihom il-pożizzjoni ma jimpurtax. Ħallini nurik kif jaħdmu.
Ħares lejn l-aħħar programm. Nistgħu nimmodifikawh bħal dan:
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')
Issa l - first_name
u, last_name
huma l-parametri tal-keyword. Tista 'taqleb il-postijiet tagħhom u r-riżultat ikun l-istess.
Issa dan ma jfissirx li għandna dejjem nużaw argumenti tal-kliem kjavi. Ħafna mill-ħin nużaw argumenti pożizzjonali, iżda f'ċerti sitwazzjonijiet, dawn l-argumenti tal-kliem kjavi jgħinuna ntejbu l-leġibbiltà tal-kodiċi tagħna.
Hemm ħaġa oħra li trid tkun taf dwar l-argumenti tal-kliem kjavi. L-argumenti tal-kliem kjavi għandhom dejjem jiġu wara argumenti pożizzjonali.
Dikjarazzjoni ta' Ritorn
S'issa tgħallimna kif noħolqu funzjonijiet u nibagħtulhom informazzjoni billi tuża l-parametri tagħhom. Issa ejja nitgħallmu kif toħloq funzjonijiet li jirritornaw il-valuri. Dan huwa partikolarment utli jekk qed tagħmel xi tip ta 'kalkoli u trid tirritorna r-riżultat lil min qed juża l-funzjoni tiegħek. Ħallini nurik.
Ejja niddefinixxu funzjoni li tikkalkula l-kwadru ta 'numru.
def square(number):
return number*number
Użajna d-dikjarazzjoni tar-ritorn biex nirritornaw dan in-numru barra mill-funzjoni. Issa, jekk insejħu din il-funzjoni, tirritorna valur bħad- input()
funzjoni. Ejja nipprintjawha fuq it-terminal.
Tista' targumenta li l-istess riżultat jista' jinkiseb mingħajr ma tuża d-dikjarazzjoni tar-ritorn. Ejja niċċekkjawha.
Naraw żewġ affarijiet, in-numru 9, u xejn. X'qed jiġri hawn?
Meta l-interpretu Python jesegwixxi dan il-kodiċi, l-ewwel se jsejjaħ il-funzjoni kwadra u l-kontroll jimxi għall-funzjoni. Hawnhekk nikkalkulaw il-kwadru ta 'dan in-numru mogħti u mbagħad nistampawh fuq it-terminal.
Issa, b'mod awtomatiku, il-funzjonijiet kollha jirritornaw il-valur xejn. Mela jekk m'għandniex dikjarazzjoni ta' ritorn hawn, b'mod awtomatiku Python ma jirritorna xejn. Xejn huwa oġġett li jirrappreżenta n-nuqqas ta 'valur. Huwa qisu xejn jew null f'C, C++, Java u Javascript.
Nagħlaq!
Nispera li fhimt l-importanza tal-funzjonijiet.
Huma aspett sinifikanti tat-tagħlim ta 'Python jekk qed tippjana li tikteb programmi kbar u kumplessi matul il-karriera tal-kodifikazzjoni tiegħek.
Ħalli Irrispondi