Python-funktioner Exempel: Samtal, indrag, argument & Returvärden

Innehållsförteckning:

Anonim

Vad är funktion i Python?

En funktion i Python är en kod som körs när den refereras. Den används för att använda koden på mer än en plats i ett program. Det kallas också metod eller förfarande. Python har många inbyggda funktioner som print (), input (), compile (), exec (), etc. men det ger också frihet att skapa egna funktioner.

I den här handledningen lär vi oss

  • Hur man definierar och anropar en funktion i Python
  • Betydelsen av indragning (Space) i Python
  • Hur funktionsreturvärde?
  • Argument i funktioner

Hur man definierar och anropar en funktion i Python

Funktion i Python definieras av uttalet "def" följt av funktionsnamn och parenteser (())

Exempel:

Låt oss definiera en funktion med kommandot "def func1 (): och ringa funktionen. Funktionen kommer att vara "Jag lär mig Python-funktion".

Funktionen print func1 () kallar vår def func1 (): och skriv ut kommandot " Jag lär mig Python-funktion None. "

Det finns en uppsättning regler i Python för att definiera en funktion.

  • Alla argument eller ingångsparametrar bör placeras inom dessa parenteser
  • Funktionens första uttalande kan vara ett valfritt uttalandedokument eller dokumentationssträngen för funktionen
  • Koden inom varje funktion börjar med ett kolon (:) och ska vara indragen (mellanslag)
  • Uttrycket returnerar (uttryck) avslutar en funktion, som eventuellt skickar tillbaka ett värde till den som ringer. Ett returuttalande utan argument är detsamma som retur Ingen.

Betydelsen av indragning (Space) i Python

Innan vi bekantar oss med Python-funktioner är det viktigt att vi förstår indenteringsregeln för att deklarera Python-funktioner och dessa regler är tillämpliga på andra element i Python, liksom att deklarera villkor, loopar eller variabler.

Python följer en viss stil för indragning för att definiera koden, eftersom Python-funktioner inte har några explicita början eller slut som lockiga hängslen för att indikera start och stopp för funktionen, de måste lita på denna indragning . Här tar vi ett enkelt exempel med kommandot "skriv ut". När vi skriver "skriv ut" -funktionen precis under def-funk 1 (): Den visar ett " indragningsfel: förväntat ett indragat block ".

När du nu lägger till indraget (mellanslag) framför "skriv ut" -funktionen ska det skrivas ut som förväntat.

Åtminstone en räkning räcker för att få din kod att fungera framgångsrikt. Men som en bästa praxis är det lämpligt att lämna cirka 3-4 indrag för att ringa din funktion .

Det är också nödvändigt att du måste behålla samma indrag för resten av din kod medan du förklarar indrag . Till exempel, under skärmdumpen nedan när vi kallar ett annat uttalande "fortfarande i func1" och när det inte förklaras precis under det första utskriftsuttyget kommer det att visa ett indragningsfel "oavbruten matchar inte någon annan indragningsnivå."

Nu när vi använder samma indrag för båda påståendena och justerar dem i samma rad ger det den förväntade utmatningen.

Hur funktionsreturvärde?

Return-kommandot i Python anger vilket värde du ska ge tillbaka till den som ringer till funktionen.

Låt oss förstå detta med följande exempel

Steg 1) Här - vi ser när funktionen inte är "return". Till exempel vill vi ha kvadraten på 4, och den ska ge svaret "16" när koden körs. Vilket det ger när vi helt enkelt använder "skriv ut x * x" -kod, men när du kallar funktionen "skriv ut kvadrat" ger det "Ingen" som utgång. Detta beror på att när du ringer till funktionen så sker inte rekursion och faller av funktionens slut. Python returnerar "Ingen" för att ha misslyckats i slutet av funktionen.

Steg 2) För att göra detta tydligare ersätter vi utskriftskommandot med tilldelningskommandot. Låt oss kolla produktionen.

När du kör kommandot "skriv ut kvadrat (4)" returnerar det faktiskt objektets värde eftersom vi inte har någon specifik funktion att köra över här returnerar det "Ingen".

Steg 3) Nu, här kommer vi att se hur man hämtar utdata med hjälp av "return" -kommandot. När du använder "retur" -funktionen och kör koden, kommer den att ge utgången "16."

Steg 4) Funktioner i Python är själva ett objekt och ett objekt har något värde. Vi kommer här att se hur Python behandlar ett objekt. När du kör kommandot "skriv ut kvadrat" returnerar det objektets värde. Eftersom vi inte har klarat något argument har vi ingen specifik funktion att köra över här, det returnerar ett standardvärde (0x021B2D30) som är objektets plats. I det praktiska Python-programmet behöver du förmodligen aldrig göra det här.

Argument i funktioner

Argumentet är ett värde som skickas till funktionen när den anropas.

Med andra ord på den anropande sidan är det ett argument och på funktionssidan är det en parameter.

Låt oss se hur Python Args fungerar -

Steg 1) Argument deklareras i funktionsdefinitionen. Medan du ringer till funktionen kan du skicka värdena för argumenten som visas nedan

Steg 2) För att deklarera ett standardvärde för ett argument, tilldela det ett värde vid funktionsdefinition.

Exempel: x har inga standardvärden. Standardvärden för y = 0. När vi bara anger ett argument medan vi anropar multiplicera funktionen tilldelar Python det angivna värdet till x samtidigt som värdet på y = 0 behålls. Därav multiplicerar x * y = 0

Steg 3) Den här gången ändrar vi värdet till y = 2 istället för standardvärdet y = 0, och det returnerar utdata som (4x2) = 8.

Steg 4) Du kan också ändra ordningen i vilken argumenten kan skickas i Python. Här har vi vänt ordningen på värdet x och y till x = 4 och y = 2.

Steg 5) Flera argument kan också skickas som en matris. Här i exemplet kallar vi flera args (1,2,3,4,5) genom att kalla funktionen (* args).

Exempel: Vi förklarade flera args som nummer (1,2,3,4,5) när vi kallar funktionen (* args); det skriver ut produktionen som (1,2,3,4,5)

Tips :

  • I Python 2.7. funktionsöverbelastning stöds inte i Python. Funktionsöverbelastning är möjligheten att skapa flera metoder med samma namn med en annan implementering. Funktionsöverbelastning stöds fullt ut i Python 3
  • Det finns en ganska förvirring mellan metoder och funktioner. Metoder i Python är associerade med objektinstanser medan funktionen inte är. När Python anropar en metod binder den den första parametern för det anropet till lämplig objektreferens. Med enkla ord är en fristående funktion i Python en "funktion", medan en funktion som är ett attribut för en klass eller en instans är en "metod".

Här är den fullständiga 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))

Här är den fullständiga 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)

Sammanfattning:

Funktion i Python är en bit återanvändbar kod som används för att utföra enstaka relaterade åtgärder. I den här artikeln kommer vi att se

  • Funktion definierad av def- uttalandet
  • Kodblocket inom varje funktion börjar med ett kolon (:) och ska vara indraget (mellanslag)
  • Eventuella argument eller ingångsparametrar bör placeras inom dessa parenteser etc.
  • Åtminstone en strecksats bör lämnas före koden efter att deklarera funktionen
  • Samma indragstil bör bibehållas genom hela koden inom def-funktionen
  • För bästa praxis anses tre eller fyra strecksatser vara bäst före uttalandet
  • Du kan använda kommandot "retur" för att återställa värden till funktionsanropet.
  • Python skriver ut ett slumpmässigt värde som (0x021B2D30) när argumentet inte levereras till den anropande funktionen. Exempel på "utskriftsfunktion."
  • På den anropande sidan är det ett argument och på funktionssidan är det en parameter
  • Standardvärde i argument - När vi bara tillhandahåller ett argument medan vi anropar multiplicera funktion eller någon annan funktion, tilldelar Python det andra argumentet som standard
  • Med Python kan du också ändra ordningens argument