funksjes
Oant no hawwe wy al ús koade yn 'e app.py skreaun, mar as ús programma's groeie, hawwe wy in bettere manier nedich om ús koade te organisearjen. Wy moatte ús koade opsplitse yn lytsere, mear behearbere en mear ûnderhâldbere brokken dy't wy funksjes neame. De funksje is in kontener foar in pear rigels koade dy't in spesifike taak útfiere.
Jo hawwe bygelyks al leard oer in pear ynboude funksjes yn Python print()
en input()
. Elke funksje hat in doel en wit hoe't jo in spesifike taak útfiere. Dus, as wy grutte komplekse programma's bouwe, moatte wy ús koade opbrekke yn lytsere werbrûkbere brokken, dat wol sizze funksjes.
Lit ús dit konsept begripe troch in programma te bouwen foar it printsjen fan in groetberjocht.
print('Hi there!')
print('Welcome aboard!')
Hjir hawwe wy in ienfâldich programma mei mar twa rigels koade. No, lit ús sizze, wy sille se nedich hawwe yn oare programma's om se yn in funksje te setten dy't wy opnij kinne brûke.
Lit my in reservearre kaaiwurd yntrodusearje def
yn Python, dat is koart foar define en wurdt brûkt foar it definiearjen fan in funksje.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
No sil dit blok koade in funksje definiearje "greet_user
” mei de rigels fan koades dêrnei. Wannear't dizze funksje oanroppen wurdt, sille dizze twa rigels wurde útfierd. Litte wy dit brûke:
print('start')
greet_user()
print('finish')
It programma wurdt sequentially útfierd, wat betsjut dat jo in funksje moatte definiearje foardat jo it yn it programma oproppe.
parameters
De definieare funksjes wurkje in bytsje oars as de ynboude funksjes fan Python. Bygelyks, yn it gefal fan print()
in funksje, it nimt wat ynformaasje dy't wy wolle printsje, mar ús begroetingsfunksje nimt gjin ynformaasje. Soe it net moaier wêze as jo hjir en dan de namme fan de meidogger trochjaan kinne, ynstee fan “hoi dêr”, de namme fan de meidogger út te printsjen?
Jo kinne dit dwaan troch de parameters ta te foegjen binnen de heakjes fan 'e definieare funksje. Lit my dy sjen litte:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
No de "name
” binnen de haakjes fungearje as in lokale fariabele en wy kinne de namme fan de brûker trochjaan by it neamen.
greet_user('Shahbaz')
No is de nammeparameter ynsteld op "Shahbaz
”. Litte wy it programma feroarje om der gebrûk fan te meitsjen.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
In wichtich ding om op te merken is dat de "namme" yn 'e earste rigel in parameter neamd wurdt, wylst de oanjûne namme, ie Shahbaz, in argumint wurdt neamd.
Litte wy trochgean en dit programma útfiere.
Dat mei dizze parameters kinne wy ynformaasje krije yn ús funksjes.
No, litte wy wat ynteressant dwaan. Litte wy sizze dat jo in oare namme taheakje wolle oan it begroetingsberjocht. It is ienfâldich.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Tink derom dat as in funksje in parameter hat, wy ferplicht binne om in wearde foar dy parameter troch te jaan. As jo de namme fan 'e funksje fuortsmite en it programma útfiere, krije wy in flater. Jo kinne ek meardere parameters brûke yn ien funksje, skieden troch in komma.
Bygelyks, greet_user(first_name, last_name):
. Arguminten sille ek op deselde manier opmakke wurde.
Keyword arguminten
Oant no hawwe wy leard dat as wy parameters foar ús funksjes definiearje, wy altyd wearden moatte leverje, oars krije wy in flater. Yn it lêste programma, de arguminten 'Shahbaz'
en 'Bhatti'
wurde posisjonele arguminten neamd, wat betsjut dat har posysje of oarder saken yn it programma.
Yn Python hawwe wy in oar soart argumint neamd kaaiwurdarguminten, wêrfoar't de posysje neat makket. Lit my dy sjen litte hoe't se wurkje.
Sjoch nei it lêste programma. Wy kinne it sa wizigje:
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')
No de first_name
en last_name
binne de kaaiwurd parameters. Jo kinne har plakken wikselje en it resultaat sil itselde wêze.
No dat betsjut net dat wy altyd keyword arguminten moatte brûke. Meast fan 'e tiid brûke wy posisjonele arguminten, mar yn bepaalde situaasjes helpe dizze kaaiwurdarguminten ús de lêsberens fan ús koade te ferbetterjen.
D'r is noch ien ding dat jo witte moatte oer arguminten foar kaaiwurden. De kaaiwurdarguminten moatte altyd komme nei posisjonele arguminten.
Return Statement
Oant no hawwe wy leard hoe't jo funksjes kinne oanmeitsje en har ynformaasje stjoere mei har parameters. Litte wy no leare hoe't jo funksjes kinne oanmeitsje dy't wearden werombringe. Dit is benammen nuttich as jo in soarte fan berekkeningen dogge en jo it resultaat wolle weromjaan oan wa't jo funksje brûkt. Lit my dy sjen litte.
Litte wy in funksje definiearje dy't it kwadraat fan in getal berekkenje sil.
def square(number):
return number*number
Wy hawwe de return statement brûkt om dit nûmer bûten de funksje werom te jaan. No, as wy dizze funksje neame, jout it in wearde krekt lykas de input()
funksje. Litte wy it printsje op 'e terminal.
Jo kinne argumearje dat itselde resultaat kin wurde krigen sûnder de return statement te brûken. Litte wy it kontrolearje.
Wy sjogge twa dingen, it nûmer 9, en gjinien. Wat bart hjir?
As de Python-tolk dizze koade útfiert, sil it earst de fjouwerkante funksje neame en de kontrôle ferpleatst nei de funksje. Hjir berekkenje wy it kwadraat fan dit opjûne getal en drukke it dan op 'e terminal.
No jouwe standert alle funksjes de wearde gjin werom. Dus as wy hjir gjin weromjefte hawwe, jout Python standert gjinien. Gjin is in objekt dat de ôfwêzigens fan in wearde fertsjintwurdiget. It is as neat of nul yn C, C ++, Java en Javascript.
Gearfetsje!
Ik hoopje dat jo it belang fan funksjes hawwe begrepen.
Se binne in wichtich aspekt fan Python-learen as jo fan plan binne om grutte en komplekse programma's te skriuwen tidens jo koadekarriêre.
Leave a Reply