Aðgerðir
Hingað til höfum við verið að skrifa allan kóðann okkar í app.py, en eftir því sem forritin okkar stækka þurfum við betri leið til að skipuleggja kóðann okkar. Við þurfum að skipta kóðanum okkar upp í smærri, meðfærilegri og viðhaldshæfari bita sem við köllum aðgerðir. Aðgerðin er ílát fyrir nokkrar línur af kóða sem framkvæma ákveðið verkefni.
Til dæmis hefur þú nú þegar lært um nokkrar innbyggðar aðgerðir í Python print()
og input()
. Hver aðgerð hefur sinn tilgang og veit hvernig á að framkvæma ákveðið verkefni. Svo, þegar við smíðum stór flókin forrit, ættum við að skipta kóðanum okkar upp í smærri endurnotanlega bita, þ.e. aðgerðir.
Við skulum skilja þetta hugtak með því að búa til forrit til að prenta kveðjuskilaboð.
print('Hi there!')
print('Welcome aboard!')
Hér höfum við einfalt forrit með aðeins tveimur línum af kóða. Nú skulum við segja að við munum þurfa þau í öðrum forritum til að setja þau í aðgerð sem við getum endurnýtt.
Leyfðu mér að kynna frátekið leitarorð def
í Python, sem er stutt fyrir skilgreina og er notað til að skilgreina fall.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Nú mun þessi kóðablokk skilgreina aðgerð "greet_user
“ með kóðalínunum á eftir. Alltaf þegar þessi aðgerð er kölluð verða þessar tvær línur keyrðar. Notum þetta:
print('start')
greet_user()
print('finish')
Forritið er keyrt í röð, sem þýðir að þú þyrftir að skilgreina aðgerð áður en þú hringir í það í forritinu.
breytur
Skilgreindu föllin virka svolítið öðruvísi en innbyggðu föllin í Python. Til dæmis, þegar um er að ræða print()
fall, það þarf einhverjar upplýsingar sem við viljum prenta, en kveðjufallið okkar tekur engar upplýsingar. Væri ekki betra ef þú gætir sent nafn notandans hér og þá, í stað þess að segja „hæ þar“, gætirðu prentað nafn notandans?
Þú getur gert þetta með því að bæta við færibreytum innan sviga skilgreindu fallsins. Leyfðu mér að sýna þér:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Nú er „name
” inni í sviga mun virka eins og staðbundin breyta og við getum sent nafn notandans þegar hringt er í það.
greet_user('Shahbaz')
Nú er nafnbreytan stillt á “Shahbaz
“. Við skulum breyta forritinu til að nýta það.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Mikilvægt er að hafa í huga að „nafnið“ í fyrstu línu er kallað Parameter en nafnið sem gefið er upp, þ.e. Shahbaz er kallað rök.
Við skulum halda áfram og keyra þetta forrit.
Þannig að með þessum breytum getum við fengið upplýsingar í aðgerðum okkar.
Nú skulum við gera eitthvað áhugavert. Segjum að þú viljir bæta öðru nafni við kveðjuskilaboðin. Það er einfalt.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Athugaðu nú að þegar fall hefur færibreytu, þá erum við skylt að senda gildi fyrir þá færibreytu. Ef þú fjarlægir nafnið úr aðgerðinni og keyrir forritið fáum við upp villu. Þú getur líka notað margar breytur í einni aðgerð, aðskilin með kommu.
Til dæmis, greet_user(first_name, last_name):
. Rök verða einnig sniðin á svipaðan hátt.
Leitarorðsrök
Hingað til höfum við lært að alltaf þegar við skilgreinum færibreytur fyrir aðgerðir okkar ættum við alltaf að gefa upp gildi annars fáum við villu. Í síðasta forriti voru rökin 'Shahbaz'
og 'Bhatti'
eru kölluð stöðurök, sem þýðir að staða þeirra eða röð skiptir máli í forritinu.
Í Python höfum við annars konar rök sem kallast lykilorðsrök, þar sem staðsetningin skiptir ekki máli. Leyfðu mér að sýna þér hvernig þeir virka.
Horfðu á síðasta prógramm. Við getum breytt því svona:
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')
Núna first_name
og last_name
eru færibreytur leitarorða. Þú getur skipt um staði þeirra og niðurstaðan verður sú sama.
Nú þýðir það ekki að við ættum alltaf að nota leitarorði. Oftast notum við staðsetningarrök, en við ákveðnar aðstæður hjálpa þessi leitarorðisrök okkur að bæta læsileika kóðans okkar.
Það er eitt í viðbót sem þú þarft að vita um rök fyrir leitarorðum. Leitarorðsrök ættu alltaf að koma á eftir staðsetningarrökum.
Skilayfirlýsing
Hingað til höfum við lært hvernig á að búa til aðgerðir og senda þeim upplýsingar með því að nota færibreytur þeirra. Nú skulum við læra hvernig á að búa til aðgerðir sem skila gildum. Þetta er sérstaklega gagnlegt ef þú ert að gera einhvers konar útreikninga og þú vilt skila niðurstöðunni til þeirra sem notar aðgerðina þína. Leyfðu mér að sýna þér.
Skilgreinum fall sem mun reikna út veldi tölu.
def square(number):
return number*number
Við höfum notað return yfirlýsinguna til að skila þessari tölu utan fallsins. Nú, ef við köllum þessa aðgerð, þá skilar hún gildi alveg eins og input()
virka. Við skulum prenta það á flugstöðinni.
Þú getur haldið því fram að hægt sé að fá sömu niðurstöðu án þess að nota skilayfirlýsinguna. Við skulum athuga það.
Við sjáum tvennt, töluna 9 og ekkert. Hvað er að gerast hér?
Þegar Python túlkurinn keyrir þennan kóða mun hann fyrst kalla á veldisfallið og stjórnin færist yfir í fallið. Hér reiknum við út veldi þessarar tilteknu tölu og prentum hana síðan á flugstöðina.
Nú, sjálfgefið, skila allar aðgerðir gildinu ekkert. Þannig að ef við höfum ekki skilayfirlýsingu hér, þá skilar Python engu sjálfgefið. Enginn er hlutur sem táknar fjarveru gildis. Það er eins og ekkert eða núll í C, C++, Java og Javascript.
Klára!
Ég vona að þú hafir skilið mikilvægi aðgerða.
Þau eru mikilvægur þáttur í Python-námi ef þú ætlar að skrifa stór og flókin forrit á kóðunarferli þínum.
Skildu eftir skilaboð