Python Funktioner

Funktioner är kodblock som endast körs vid anrop.

Du kan överföra data (kallade parametrar) till funktionen.

Funktioner kan returnera data som resultat.

skapa funktioner

I Python används def Känyord definierar funktioner:

Exempel

def min_funktion():
  print("Hello from a function")

Anropa funktion

För att anropa en funktion, använd funktionens namn följt av parenteser:

Exempel

def min_funktion():
  print("Hello from a function")
my_function()

Kör exempel

Parametrar

Information kan överföras som parametrar till funktionen.

Parametrar specificeras inom parentesen efter funktionens namn. Du kan lägga till så många parametrar som du behöver, endast separerade med kommatecken.

Följande exempel har en funktion med parametrar (fnamn). När vi anropar denna funktion överför vi ett namn, och vi använder det inom funktionen för att skriva ut fullständigt namn:

Exempel

def min_funktion(fnamn):
  print(fnamn + " Gates")
min_funktion("Bill")
min_funktion("Steve")
min_funktion("Elon")

Kör exempel

Standardparametrar

Följande exempel visar hur man använder standardparametrar.

Om vi anropar funktionen utan parametrar, används standardvärdet:

Exempel

def min_funktion(land = "Kina"):
  print("Jag kommer från " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Kör exempel

Överför List

Parametrarna som du skickar till funktionen kan vara vilket datatyp som helst (strängar, tal, listor, ordböcker osv.) och kommer att betraktas som samma datatyp inuti funktionen.

Till exempel, om du skickar en Lista som parameter, kommer den att vara en Lista (list) när den når funktionen:

Exempel

def my_function(food):
  for x in food:
    print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

Kör exempel

Returvärde

För att få funktionen att returnera ett värde, använd return Uttryck:

Exempel

def my_function(x):
  return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

Kör exempel

Nyckelargument

Du kan också använda syntaxen key = value för att skicka argument.

Rekvensen av argumenten spelar ingen roll.

Exempel

def my_function(child3, child2, child1):
  print("Den yngsta barnet är " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

Kör exempel

I Python-dokumentationen används uttrycket "nyckelargument" ofta förkortat till kwargs.

Varje argument

Om du inte vet hur många argument som kommer att skickas till din funktion, lägg till * före argumentnamnet i funktionsspecifikationen.

På så sätt kommer funktionen att ta emot en parameter tupel och kan tillgång till varje element på ett sätt:

Exempel

Om du inte vet hur många argument som kommer att skickas till din funktion, lägg till * före argumentnamnet:

def my_function(*kids):
  print("Den yngsta barnet är " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

Kör exempel

pass-sats

Funktionsspecifikation kan inte vara tom, men om du av någon anledning skriver en tom funktionsspecifikation, använd pass-satsen för att undvika fel.

Exempel

def myfunction:
  pass

Kör exempel

Rekursion

Python accepterar också funktion rekursivitet, vilket innebär att definierade funktioner kan anropa sig själva.

Rekursivitet är en vanlig matematisk och programmeringskoncept. Det innebär att en funktion anropar sig själv. Fördelen med detta är att det är möjligt att återvända till data för att uppnå resultat.

Utviklare bör vara mycket försiktiga med rekursivitet, eftersom det är lätt att skriva en som aldrig slutar, eller som använder för mycket minne eller processorkraft. Men om den är korrekt skriven, kan rekursivitet vara ett mycket effektivt och matematiskt vackert programmeringsmetod.

I detta exempel:tri_recursion() är definierat som en funktion som anropar sig själv ("recurse"). Vi använder k-variabeln som data och minskar (-1) vid varje rekursiv anrop. När villkoret inte är större än 0 (t.ex. när det är 0), slutar rekursen.

För nya utvecklare kan det ta tid att förstå hur det fungerar, och det bästa sättet är att testa och modifiera det.

Exempel

Ett exempel på rekursivitet:

def tri_recursion(k):
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result
print("\n\nRecursion Example Results")
tri_recursion(6)

Kör exempel