Python funktioner

Funktioner er kodeblokke, der kun kører ved kald.

Du kan overføre data (kaldet parametre) til funktionen.

Funktioner kan returnere data som resultat.

oprette funktion

I Python bruger man def Kvoteord definerer funktion:

Eksempel

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

Kald funktion

For at kalde en funktion, brug funktionens navn efterfulgt af parenteser:

Eksempel

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

Kør Eksempel

Parameter

Information kan overføres som parameter til funktionen.

Parametre specificeres i parentes efter funktionens navn. Du kan tilføje så mange parametre som du har brug for, ved at adskille dem med kommaer.

Følgende eksempel har en funktion med parameter (fnavn). Når vi kalder denne funktion, overfører vi et navn, som vi bruger inden for funktionen til at printe fuldt navn:

Eksempel

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

Kør Eksempel

Standardparametre

Følgende eksempel viser, hvordan man bruger standardparametre.

Hvis vi kalder funktionen uden parametre, bruger vi standardværdien:

Eksempel

def min_funktion(land = "Kina"):
  print("Jeg er fra " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

Kør Eksempel

Send med List

Parametrene, du sender til funktionen, kan være hvilken som helst datatype (streng, tal, liste, dictionary osv.), og de vil blive behandlet som samme datatype inde i funktionen.

For eksempel, hvis du sender en List som parameter, vil den stadig være en List (liste) når den når funktionen:

Eksempel

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

Kør Eksempel

Returværdi

For at få funktionen til at returnere en værdi, skal du bruge return Sætning:

Eksempel

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

Kør Eksempel

Nøgleparametre

Du kan også bruge syntaksen key = value til at sende parametre.

Reolen af parametre er ikke vigtig.

Eksempel

def my_function(child3, child2, child1):
  print("Den yngste barn er " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

Kør Eksempel

I Python-dokumentationer bruges ordet "nøgleparametre" ofte som en forkortelse for kwargs.

Vilkårlige parametre

Hvis du ikke ved, hvor mange parametre der vil blive overført til din funktion, skal du tilføje * før parameter navnet i funktion definitionen.

På denne måde vil funktionen modtage en parameter tuple og kan tilsvarende få adgang til de enkelte elementer:

Eksempel

Hvis antallet af parametre er ukendt, skal du tilføje * før parameter navnet:

def my_function(*kids):
  print("Den yngste barn er " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")

Kør Eksempel

pass-statement

Funktion definition kan ikke være tom, men hvis du af en eller anden grund har skrevet en tom funktion definition, skal du bruge pass-statement for at undgå fejl.

Eksempel

def myfunction:
  pass

Kør Eksempel

Rekursion

Python accepterer også funktionelle rekursioner, hvilket betyder, at definerede funktioner kan kalde sig selv.

Rekursion er en almindelig matematisk og programmeringskoncept. Det betyder, at en funktion kalder sig selv. Fordelene ved dette er, at man kan cykle gennem data for at nå et resultat.

Udviklere skal være meget forsigtige med rekursion, fordi det kan være nemt at skrive en, der aldrig stopper, eller en, der bruger for meget hukommelse eller processorkraft. Men efter korrekt implementering kan rekursion være en meget effektiv og matematisk elegant programmeringsmetode.

I dette eksempel,tri_recursion() Er defineret som en funktion, der kalder sig selv ("recurse"). Vi bruger k-variablen som data og reducerer den med (-1) hver gang vi rekurrerer. Når betingelsen ikke er større end 0 (f.eks. når den er 0), slutter rekursionen.

For nye udviklere kan det tage noget tid at forstå, hvordan det fungerer, og det bedste er at teste og ændre det.

Eksempel

Eksempel på rekursion:

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 Eksempel