Funksjoner
Så langt har vi skrevet all koden vår i app.py, men etter hvert som programmene våre vokser, trenger vi en bedre måte å organisere koden vår på. Vi må dele opp koden vår i mindre, mer håndterbare og mer vedlikeholdbare biter som vi kaller funksjoner. Funksjonen er en beholder for noen få linjer med kode som utfører en bestemt oppgave.
For eksempel har du allerede lært om noen få innebygde funksjoner i Python print()
og input()
. Hver funksjon har et formål og vet hvordan en spesifikk oppgave skal utføres. Så når vi bygger store komplekse programmer, bør vi dele opp koden vår i mindre gjenbrukbare biter, dvs. funksjoner.
La oss forstå dette konseptet ved å bygge et program for å skrive ut en hilsen.
print('Hi there!')
print('Welcome aboard!')
Her har vi et enkelt program med kun to linjer med kode. Nå, la oss si, vi kommer til å trenge dem i andre programmer for å sette dem i en funksjon som vi kan gjenbruke.
La meg introdusere et reservert nøkkelord def
i Python, som er forkortelse for definere og brukes til å definere en funksjon.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Nå vil denne kodeblokken definere en funksjon "greet_user
” med kodelinjene etter det. Hver gang denne funksjonen kalles opp, vil disse to linjene bli utført. La oss bruke dette:
print('start')
greet_user()
print('finish')
Programmet kjøres sekvensielt, noe som betyr at du må definere en funksjon før du kaller den i programmet.
parametere
De definerte funksjonene fungerer litt annerledes enn de innebygde funksjonene til Python. For eksempel i tilfelle av print()
en funksjon, krever det noe informasjon som vi ønsker å skrive ut, men vår hilsen-funksjon tar ingen informasjon. Ville det ikke vært bedre om du kunne sende navnet på brukeren her og da, i stedet for å si «hei», kunne du skrive ut navnet på brukeren?
Du kan gjøre dette ved å legge til parameterne i parentesen til den definerte funksjonen. La meg vise deg:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Nå er "name
” inne i parentesen vil fungere som en lokal variabel og vi kan sende brukerens navn når vi kaller det.
greet_user('Shahbaz')
Nå er navneparameteren satt til "Shahbaz
". La oss endre programmet for å bruke det.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
En viktig ting å merke seg er at "navnet" i den første linjen kalles en parameter, mens navnet som oppgis, dvs. Shahbaz, kalles et argument.
La oss gå videre og kjøre dette programmet.
Så med disse parameterne kan vi motta informasjon i funksjonene våre.
Nå, la oss gjøre noe interessant. La oss si at du vil legge til et annet navn i hilsenen. Det er enkelt.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Vær nå oppmerksom på at når en funksjon har en parameter, er vi forpliktet til å sende en verdi for den parameteren. Hvis du fjerner navnet fra funksjonen og kjører programmet, får vi en feilmelding. Du kan også bruke flere parametere i en enkelt funksjon, atskilt med komma.
For eksempel, greet_user(first_name, last_name):
. Argumenter vil også bli formatert på samme måte.
Søkeordargumenter
Så langt har vi lært at når vi definerer parametere for funksjonene våre, bør vi alltid oppgi verdier, ellers får vi en feil. I det siste programmet, argumentene 'Shahbaz'
og 'Bhatti'
kalles posisjonsargumenter, noe som betyr at deres posisjon eller rekkefølge betyr noe i programmet.
I Python har vi en annen type argument som kalles nøkkelordargumenter, som posisjonen ikke betyr noe for. La meg vise deg hvordan de fungerer.
Se på det siste programmet. Vi kan endre det slik:
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å first_name
og last_name
er nøkkelordparametrene. Du kan bytte plass og resultatet blir det samme.
Nå betyr ikke det at vi alltid skal bruke søkeordargumenter. Mesteparten av tiden bruker vi posisjonsargumenter, men i visse situasjoner hjelper disse søkeordargumentene oss med å forbedre lesbarheten til koden vår.
Det er en ting til du trenger å vite om søkeordargumenter. Søkeordargumentene skal alltid komme etter posisjonsargumenter.
Returerklæring
Så langt har vi lært å lage funksjoner og sende dem informasjon ved å bruke parameterne deres. La oss nå lære hvordan du lager funksjoner som returnerer verdier. Dette er spesielt nyttig hvis du gjør noen form for beregninger og du vil returnere resultatet til den som bruker funksjonen din. La meg vise deg.
La oss definere en funksjon som skal beregne kvadratet til et tall.
def square(number):
return number*number
Vi har brukt retursetningen for å returnere dette nummeret utenfor funksjonen. Nå, hvis vi kaller denne funksjonen, returnerer den en verdi akkurat som input()
funksjon. La oss skrive det ut på terminalen.
Du kan argumentere for at samme resultat kan oppnås uten å bruke returoppgaven. La oss sjekke det ut.
Vi ser to ting, tallet 9 og ingen. Hva skjer her?
Når Python-tolken kjører denne koden, vil den først kalle opp kvadratfunksjonen og kontrollen flytter til funksjonen. Her regner vi ut kvadratet av dette gitte tallet og skriver det ut på terminalen.
Nå, som standard, returnerer alle funksjoner verdien ingen. Så hvis vi ikke har en retursetning her, returnerer Python som standard ingen. Ingen er et objekt som representerer fraværet av en verdi. Det er som ingenting eller null i C, C++, Java og Javascript.
Pakk opp!
Jeg håper du har forstått viktigheten av funksjoner.
De er et viktig aspekt ved Python-læring hvis du planlegger å skrive store og komplekse programmer i løpet av din kodekarriere.
Legg igjen en kommentar