Hva er funksjon i Python?
En funksjon i Python er et stykke kode som kjører når det refereres til det. Den brukes til å bruke koden mer enn ett sted i et program. Det kalles også metode eller prosedyre. Python gir mange innebygde funksjoner som print (), input (), compile (), exec (), etc., men det gir også frihet til å lage dine egne funksjoner.
I denne opplæringen vil vi lære
- Hvordan definere og kalle en funksjon i Python
- Betydningen av innrykk (mellomrom) i Python
- Hvordan funksjonen returnerer verdien?
- Argumenter i funksjoner
Hvordan definere og kalle en funksjon i Python
Funksjon i Python er definert av "def" -uttalelsen etterfulgt av funksjonsnavnet og parentesene (())
Eksempel:
La oss definere en funksjon ved å bruke kommandoen "def func1 (): og kalle funksjonen. Utgangen av funksjonen vil være "Jeg lærer Python-funksjon".
Funksjonen print func1 () kaller vår def func1 (): og skriver ut kommandoen " Jeg lærer Python-funksjon Ingen. "
Det er sett med regler i Python for å definere en funksjon.
- Eventuelle argumenter eller inngangsparametere bør plasseres innenfor disse parentesene
- Funksjonens første setning kan være en valgfri statement-docstring eller dokumentasjonsstrengen til funksjonen
- Koden i hver funksjon starter med et kolon (:) og skal være innrykket (mellomrom)
- Uttalelsesreturen (uttrykk) går ut av en funksjon og gir eventuelt en verdi tilbake til den som ringer. En returerklæring uten argumenter er den samme som retur Ingen.
Betydningen av innrykk (mellomrom) i Python
Før vi blir kjent med Python-funksjoner, er det viktig at vi forstår innrykkingsregelen for å erklære Python-funksjoner, og disse reglene gjelder for andre elementer i Python, så vel som å erklære forhold, sløyfer eller variabler.
Python følger en bestemt innrykkstil for å definere koden, siden Python-funksjoner ikke har noen eksplisitt begynnelse eller slutt som krøllete bukseseler for å indikere start og stopp for funksjonen, må de stole på denne innrykkingen . Her tar vi et enkelt eksempel med "print" -kommando. Når vi skriver "skriv ut" -funksjon rett under def-funksjon 1 (): Den viser en " innrykkingsfeil: forventet en innrykket blokk ".
Nå, når du legger til innrykk (mellomrom) foran "skriv ut" -funksjonen, skal den skrives ut som forventet.
I det minste er ett innrykk nok til å få koden til å fungere. Men som en beste praksis, anbefales det å legge igjen 3-4 innrykk for å ringe funksjonen din .
Det er også nødvendig at mens du erklærer innrykk, må du opprettholde samme innrykk for resten av koden . For eksempel i skjermbildet nedenfor når vi kaller en annen setning "fortsatt i func1", og når den ikke blir erklært rett under den første utskriftsuttalelsen, vil den vise en innrykkingsfeil "unindent samsvarer ikke med noe annet innrykkingsnivå."
Nå, når vi bruker samme innrykk for begge utsagnene og justerer dem i samme linje, gir det forventet resultat.
Hvordan funksjonen returnerer verdien?
Return-kommandoen i Python spesifiserer hvilken verdi du skal gi tilbake til innringeren av funksjonen.
La oss forstå dette med følgende eksempel
Trinn 1) Her - vi ser når funksjonen ikke er "retur". For eksempel vil vi ha firkanten på 4, og den skal gi svaret "16" når koden utføres. Hvilket den gir når vi bare bruker "print x * x" -kode, men når du kaller funksjonen "print square" gir den "None" som utgang. Dette er fordi når du ringer til funksjonen, skjer ikke rekursjon og faller av slutten av funksjonen. Python returnerer "Ingen" for å mislykkes i slutten av funksjonen.
Trinn 2) For å gjøre dette tydeligere erstatter vi utskriftskommandoen med tildelingskommando. La oss sjekke utdataene.
Når du kjører kommandoen "print square (4)" returnerer den faktisk verdien av objektet siden vi ikke har noen spesifikk funksjon å kjøre over her, returnerer den "None".
Trinn 3) Nå, her vil vi se hvordan du henter utdataene ved hjelp av "retur" -kommandoen. Når du bruker "retur" -funksjonen og utfører koden, vil den gi utgangen "16."
Trinn 4) Funksjoner i Python er i seg selv et objekt, og et objekt har noen verdi. Vi vil her se hvordan Python behandler et objekt. Når du kjører kommandoen "print square", returnerer den verdien til objektet. Siden vi ikke har bestått noen argumenter, har vi ingen spesiell funksjon å kjøre over her. Det returnerer en standardverdi (0x021B2D30) som er plasseringen til objektet. I det praktiske Python-programmet trenger du sannsynligvis aldri å gjøre dette.
Argumenter i funksjoner
Argumentet er en verdi som overføres til funksjonen når den kalles.
Med andre ord på den kallende siden er det et argument, og på funksjonssiden er det en parameter.
La oss se hvordan Python Args fungerer -
Trinn 1) Argumenter er erklært i funksjonsdefinisjonen. Mens du ringer til funksjonen, kan du overføre verdiene for det argumentet som vist nedenfor
Trinn 2) For å erklære en standardverdi for et argument, tilordne det en verdi ved funksjonsdefinisjon.
Eksempel: x har ingen standardverdier. Standardverdiene for y = 0. Når vi bare gir ett argument mens vi ringer til multipliseringsfunksjonen, tilordner Python den oppgitte verdien til x, mens verdien på y = 0 holdes. Derfor multipliserer x * y = 0
Trinn 3) Denne gangen vil vi endre verdien til y = 2 i stedet for standardverdien y = 0, og den vil returnere utdata som (4x2) = 8.
Trinn 4) Du kan også endre rekkefølgen som argumentene kan sendes i Python. Her har vi snudd rekkefølgen på verdien x og y til x = 4 og y = 2.
Trinn 5) Flere argumenter kan også sendes som en matrise. Her i eksemplet kaller vi flere args (1,2,3,4,5) ved å kalle (* args) -funksjonen.
Eksempel: Vi erklærte flere args som tall (1,2,3,4,5) når vi kaller (* args) -funksjonen; det skriver ut utdata som (1,2,3,4,5)
Tips :
- I Python 2.7. funksjonsoverbelastning støttes ikke i Python. Funksjon Overbelastning er muligheten til å lage flere metoder med samme navn med en annen implementering. Funksjon Overbelastning støttes fullt ut i Python 3
- Det er ganske forvirring mellom metoder og funksjoner. Metoder i Python er assosiert med objektforekomster mens funksjon ikke er. Når Python kaller en metode, binder den den første parameteren for det anropet til riktig objektreferanse. Med enkle ord er en frittstående funksjon i Python en "funksjon", mens en funksjon som er et attributt for en klasse eller en forekomst er en "metode".
Her er den komplette Python 3-koden
#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))
Her er den komplette Python 2-koden
#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)
Sammendrag:
Funksjon i Python er et stykke gjenbrukbar kode som brukes til å utføre en enkelt, relatert handling. I denne artikkelen vil vi se
- Funksjon definert av def- setningen
- Kodeblokken i hver funksjon starter med et kolon (:) og skal være innrykket (mellomrom)
- Eventuelle argumenter eller inngangsparametere bør plasseres innenfor disse parentesene, etc.
- Minst ett innrykk skal være igjen før koden etter erklæring av funksjon
- Samme innrykkstil skal opprettholdes gjennom hele koden innen def-funksjonen
- For beste praksis anses tre eller fire innrykk som best før uttalelsen
- Du kan bruke "retur" -kommandoen for å returnere verdier til funksjonsanropet.
- Python vil skrive ut en tilfeldig verdi som (0x021B2D30) når argumentet ikke leveres til anropsfunksjonen. Eksempel på "utskriftsfunksjon."
- På den kallende siden er det et argument og på funksjonssiden er det en parameter
- Standardverdi i argument - Når vi bare leverer ett argument mens vi ringer til multipliseringsfunksjon eller en hvilken som helst annen funksjon, tilordner Python det andre argumentet som standard
- Python lar deg også reversere rekkefølgen på argumentet