Python funktioner
- Forrige Side Python For løkke
- Næste Side Python Lambda
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()
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")
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")
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)
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))
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")
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")
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
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)
- Forrige Side Python For løkke
- Næste Side Python Lambda