Hur man ringer in en funktion Python (Exempel)

⚡ Smart sammanfattning

Fungerar i Python är återanvändbara kodblock som körs när de anropas, definierade med def-satsen. De accepterar argument, returnerar värden och förlitar sig på konsekvent indentering för att gruppera de satser som hör till varje funktion.

  • 🧩 def-sats: En funktion definieras med def, ett namn och parenteser, följt av ett kolon som öppnar det indragna blocket med satser.
  • 📞 Anropsfunktioner: Att skriva funktionsnamnet följt av parenteser kör dess kod, så samma logik kan återanvändas många gånger.
  • ⌨️ Indrag: Python grupperar en funktionskropp med konsekvent indentation istället för klammerparenteser, så ett saknat mellanslag ger upphov till ett IndentationError.
  • 🎯 argument: Värden som skickas inom parenteser blir parametrar, och standardvärden eller nyckelordsargument gör varje anrop flexibelt.
  • ↩️ Returvärden: Return-satsen skickar ett resultat tillbaka till anroparen; utan den returnerar funktionen None.
  • 🤖 AI-hjälp: AI-assistenter som GitHub Copilot genererar funktionsskelett, argument och dokumentsträngar från en kort prompt.

Hur man ringer in en funktion Python

Vad är funktion i Python?

A Funktion i Python är en kodstycke som körs när den refereras. Den används för att använda koden på mer än ett ställe i ett program. Den kallas också en metod eller en procedur. Python erbjuder många inbyggda funktioner som print(), input(), compile() och exec(), men det ger dig också friheten att skapa dina egna funktioner.

Hur man definierar och anropar en funktion Python

En funktion i Python definieras av kommandot ”def” följt av funktionsnamnet och parenteser (()).

Exempel:

Låt oss definiera en funktion genom att använda kommandot "def func1():" och anropa funktionen. Funktionens utdata blir "Jag lär mig Python fungera".

Definiera och anropa en funktion Python

Funktionsanropet func1() anropar vår def func1(): och skriver ut kommandot "Jag lär mig Python funktion Ingen.”

Det finns en uppsättning regler i Python programmering att definiera en funktion.

  • Alla argument eller inparametrar ska placeras inom dessa parenteser.
  • Funktionens första kommando kan vara ett valfritt kommando — funktionens docstring eller dokumentationssträng.
  • Koden i varje funktion börjar med ett kolon (:) och ska vara indragen (mellanslag).
  • Satsen return (uttryck) avslutar en funktion, och skickar eventuellt tillbaka ett värde till anroparen. En return-sats utan argument är detsamma som return None.

Betydelsen av indrag (mellanslag) i Python

Innan vi blir bekanta med Python funktioner är det viktigt att vi förstår indragsregeln att deklarera Python funktioner, och dessa regler är tillämpliga på andra delar av Python såväl som att deklarera villkor, loopar eller variabler.

Python följer en viss typ av indentering för att definiera koden. Eftersom Python Funktioner har ingen explicit början eller slut som klammerparenteser för att indikera funktionens start och stopp, de måste förlita sig på denna indentering. Här tar vi ett enkelt exempel med kommandot "print". När vi skriver funktionen "print" precis under raden def func1(): kommer den att visa ett "indragningsfel: förväntat ett indraget block".

Definiera och anropa en funktion Python

När du nu lägger till indraget (mellanslaget) framför funktionen "print" bör den skrivas ut som förväntat.

Definiera och anropa en funktion Python

Minst ett indrag räcker för att din kod ska fungera korrekt. Men som en god praxis är det lämpligt att lämna cirka 3–4 indragsblanksteg för att anropa din funktion.

Det är också nödvändigt att du bibehåller samma indentering för resten av din kod när du deklarerar indentering. Till exempel, i skärmdumpen nedan, när vi anropar en annan sats "still in func1" och den inte deklareras precis under den första print-satsen, kommer den att visa ett indenteringsfel: "unindent does not match any other indentation level".

Definiera och anropa en funktion Python

När vi nu tillämpar samma indentering för båda satserna och justerar dem på samma rad, ger det den förväntade utdata.

Definiera och anropa en funktion Python

Hur fungerar avkastningsvärdet?

Returkommandot i Python anger vilket värde som ska ges tillbaka till funktionens anropare. Låt oss förstå detta med följande exempel.

Steg 1) Funktionen returnerar ingenting

Här ser vi när en funktion inte "returnerar". Till exempel vill vi ha kvadraten av 4, och den ska ge svaret "16" när koden körs. Det ger det när vi helt enkelt använder koden "print x*x", men när du anropar funktionen "print square" ger den "None" som utdata. Detta beror på att när du anropar funktionen sker ingen rekursion och den faller utanför slutet av funktionen. Python returnerar "Ingen" för att den faller utanför slutet av funktionen.

Definiera och anropa en funktion Python

Steg 2) Ersätt utskriftskommandot med ett tilldelningskommando

För att göra detta tydligare ersätter vi utskriftskommandot med ett tilldelningskommando. Låt oss kontrollera resultatet.

Definiera och anropa en funktion Python

När du kör kommandot "print square (4)" returnerar det faktiskt objektets värde. Eftersom vi inte har någon specifik funktion att köra över här returnerar det "None".

Steg 3) Använd funktionen 'return' och kör koden

Nu ska vi se hur man hämtar utdata med hjälp av kommandot "return". När du använder funktionen "return" och kör koden kommer det att ge utdata "16".

Definiera och anropa en funktion Python

Steg 4) Kör kommandot "print square"

Fungerar i Python är i sig ett objekt, och ett objekt har ett visst värde. Vi får här se hur Python behandlar ett objekt. När du kör kommandot "print square" returnerar det objektets värde. Eftersom vi inte har skickat något argument har vi ingen specifik funktion att köra över här, så det returnerar ett standardvärde (0x021B2D30) som är objektets plats. I en praktisk Python programmet, kommer du förmodligen aldrig att behöva göra detta.

Definiera och anropa en funktion Python

Argument i funktioner

Ett argument ä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 argument fungerar.

Steg 1) Argument deklareras i funktionsdefinitionen. När du anropar funktionen kan du skicka värdena för dessa argument enligt nedan.

Definiera och anropa en funktion Python

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

Definiera och anropa en funktion Python

Exempel: x har inget standardvärde. Standardvärdet y=0. När vi bara anger ett argument när vi anropar multiplikationsfunktionen, Python tilldelar det angivna värdet till x medan keeping värdet av y=0. Därav multiplikationen av x*y=0.

Definiera och anropa en funktion Python

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

Definiera och anropa en funktion Python

Steg 4) Du kan också ändra ordningen i vilken argumenten skickas PythonHär har vi bytt ordning på värdena x och y till x=4 och y=2.

Definiera och anropa en funktion Python

Steg 5) Flera argument kan också skickas som en array. Här i exemplet anropar vi de flera argumenten (1,2,3,4,5) genom att anropa funktionen (*args).

Exempel: Vi deklarerade flera argument som talen (1,2,3,4,5); när vi anropar funktionen (*args) skriver den ut utdata som (1,2,3,4,5).

Definiera och anropa en funktion Python

Tips:

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

Här är den kompletta Python 3-kod

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Här är den kompletta Python 2-kod

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

Vanliga frågor

Ja. A Python Funktionen kan returnera flera värden genom att separera dem med kommatecken efter return-nyckelordet. Python packar dem i en tupel, som anroparen kan packa upp i separata variabler, till exempel a, b = func().

*args samlar in extra positionsargument i en tupel, medan **kwargs samlar in extra nyckelordsargument i en ordbok. Båda låter en funktion acceptera ett variabelt antal indata, och namnen args och kwargs är bara en konvention, inte ett krav.

En docstring är en strängliteral som placeras som den första satsen inuti en funktion för att dokumentera vad den gör. Den skrivs inom trippelcitationstecken och kan läsas vid körning via funktionens __doc__-attribut eller funktionen help().

En lambda är en liten anonym funktion som definieras på en rad med nyckelordet lambda istället för def. Den passar för kort, engångslogik som skickas till funktioner som map(), filter() och sorted(). Se detta lambda-funktion guide.

Ja. En funktion som anropar sig själv är en rekursiv funktion. Rekursion löser problem som uppdelas i mindre liknande delproblem, såsom faktorialer. Varje rekursiv funktion behöver ett basfall som stoppar anropen, annars Python genererar ett RecursionError.

En lokal variabel skapas inuti en funktion och existerar bara medan funktionen körs. En global variabel definieras utanför alla funktioner och är synlig överallt. För att ändra en global variabel inuti en funktion, deklarera den först med nyckelordet global.

GitHub Copilot föreslår en fullständig funktionstext från namnet eller en kort kommentar, inklusive parametrar, retursatser och dokumentsträngar. Den föreslår även hantering av edge-case-fall och tester, vilket låter dig fokusera på logiken istället för typen.ping standarddefinitionsblock.

Funktioner organiserar AI- och maskininlärningskod i återanvändbara steg som att ladda data, förbehandling, träning och utvärdering. De håller experiment läsbara och testbara, och ramverk som TensorFlow och scikit-learn exponerar det mesta av deras beteende genom välnamngivna funktioner som du anropar.

Sammanfatta detta inlägg med: