Python funktioner er en blok af udsagn, der returnerer den specifikke opgave. Ideen er at sætte nogle almindeligt eller gentagne gange udførte opgaver sammen og lave en funktion, så vi i stedet for at skrive den samme kode igen og igen for forskellige input, kan lave funktionskaldene for at genbruge kode indeholdt i den igen og igen.
Nogle Fordele ved at bruge funktioner
- Forøg kodelæsbarheden
- Forøg kodegenanvendelighed
Python funktionserklæring
Syntaksen til at erklære en funktion er:

Syntaks for Python-funktionserklæring
Typer af funktioner i Python
Nedenfor er de forskellige typer funktioner i Python :
- Indbygget biblioteksfunktion: Disse er Standard funktioner i Python, der er tilgængelige til brug.
- Brugerdefineret funktion: Vi kan lave vores egne funktioner ud fra vores krav.
Oprettelse af en funktion i Python
Vi kan definere en funktion i Python ved hjælp af def søgeord. Vi kan tilføje enhver form for funktionalitet og egenskaber til det, som vi har brug for. Ved det følgende eksempel kan vi forstå, hvordan man skriver en funktion i Python. På denne måde kan vi oprette Python-funktionsdefinition ved at bruge def nøgleord.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Kaldning af en funktion i Python
Efter at have oprettet en funktion i Python kan vi kalde den ved at bruge navnet på funktionerne Python efterfulgt af parenteser, der indeholder parametre for den pågældende funktion. Nedenfor er eksemplet for at kalde def-funktionen Python.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Produktion:
Welcome to GFG>
Python-funktion med parametre
Hvis du har erfaring med C/C++ eller Java, så skal du tænke på returtype af funktionen og datatype af argumenter. Det er også muligt i Python (specifikt for Python 3.5 og nyere).
Python-funktionssyntaks med parametre
def function_name(parameter: data_type) ->return_type: '''Docstring''' # body af funktionen returudtryk>
Følgende eksempel bruger argumenter og parametre som du vil lære senere i denne artikel, så du kan vende tilbage til det igen, hvis du ikke forstår det.
Python3 def add(num1: int, num2: int) ->int: '''Tilføj to tal''' num3 = num1 + num2 returner num3 # Chaufførkode num1, num2 = 5, 15 ans = add(num1, num2) print(f'Tilføjelsen af {num1} og {num2} resultater {ans}.')> Produktion:
fjederværktøjspakke
The addition of 5 and 15 results 20.>
Python3Bemærk: Følgende eksempler er defineret ved hjælp af syntaks 1, prøv at konvertere dem i syntaks 2 for at øve dig.
# some more functions def is_prime(n): if n in [2, 3]: return True if (n == 1) or (n % 2 == 0): return False r = 3 while r * r <= n: if n % r == 0: return False r += 2 return True print(is_prime(78), is_prime(79))>
Produktion:
False True>
Python funktionsargumenter
Argumenter er de værdier, der sendes inde i parentesen af funktionen. En funktion kan have et hvilket som helst antal argumenter adskilt af et komma.
I dette eksempel vil vi oprette en simpel funktion i Python for at kontrollere, om det tal, der sendes som argument til funktionen, er lige eller ulige.
Python3 # A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function evenOdd(2) evenOdd(3)> Produktion:
even odd>
Typer af Python-funktionsargumenter
Python understøtter forskellige typer argumenter, der kan sendes på tidspunktet for funktionskaldet. I Python har vi følgende funktionsargumenttyper i Python:
- Standardargument
- Søgeordsargumenter (navngivne argumenter)
- Positionelle argumenter
- Vilkårlige argumenter (argumenter med variabel længde *args og **kwargs)
Lad os diskutere hver type i detaljer.
Standardargumenter
EN standardargument er en parameter, der antager en standardværdi, hvis en værdi ikke er angivet i funktionskaldet for det pågældende argument. Følgende eksempel illustrerer standardargumenter til at skrive funktioner i Python.
Python3 # Python program to demonstrate # default arguments def myFun(x, y=50): print('x: ', x) print('y: ', y) # Driver code (We call myFun() with only # argument) myFun(10)> Produktion:
x: 10 y: 50>
Ligesom C++ standardargumenter kan et hvilket som helst antal argumenter i en funktion have en standardværdi. Men når vi først har et standardargument, skal alle argumenterne til højre også have standardværdier.
Søgeordsargumenter
Ideen er at give den, der ringer, mulighed for at angive argumentnavnet med værdier, så den, der ringer, ikke behøver at huske rækkefølgen af parametre.
Python3 # Python program to demonstrate Keyword Arguments def student(firstname, lastname): print(firstname, lastname) # Keyword arguments student(firstname='Geeks', lastname='Practice') student(lastname='Practice', firstname='Geeks')>
Produktion:
Geeks Practice Geeks Practice>
Positionelle argumenter
Vi brugte Positionsargument under funktionskaldet, så det første argument (eller værdi) tildeles navn og det andet argument (eller værdi) tildeles alder. Ved at ændre positionen, eller hvis du glemmer rækkefølgen af positionerne, kan værdierne bruges de forkerte steder, som vist i Case-2 eksemplet nedenfor, hvor 27 er tildelt navnet og Suraj er tildelt alderen.
Python3 def nameAge(name, age): print('Hi, I am', name) print('My age is ', age) # You will get correct output because # argument is given in order print('Case-1:') nameAge('Suraj', 27) # You will get incorrect output because # argument is not in order print('
Case-2:') nameAge(27, 'Suraj')> Produktion:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Vilkårlige søgeordsargumenter
I Python Arbitrary Keyword-argumenter, *args og **kwargs kan sende et variabelt antal argumenter til en funktion ved hjælp af specielle symboler. Der er to specielle symboler:
- *args i Python (ikke-søgeordsargumenter)
- **kwargs i Python (søgeordsargumenter)
Eksempel 1: Variabel længde ikke-søgeord-argument
Python3 # Python program to illustrate # *args for variable number of arguments def myFun(*argv): for arg in argv: print(arg) myFun('Hello', 'Welcome', 'to', 'techcodeview.com')> Produktion:
Hello Welcome to techcodeview.com>
Eksempel 2: Søgeordsargumenter med variabel længde
Python3 # Python program to illustrate # *kwargs for variable number of keyword arguments def myFun(**kwargs): for key, value in kwargs.items(): print('%s == %s' % (key, value)) # Driver code myFun(first='Geeks', mid='for', last='Geeks')> Produktion:
first == Geeks mid == for last == Geeks>
Docstring
Den første streng efter funktionen kaldes dokumentstrengen eller Docstring kort sagt. Dette bruges til at beskrive funktionaliteten af funktionen. Brugen af docstring i funktioner er valgfri, men det betragtes som en god praksis.
Nedenstående syntaks kan bruges til at udskrive docstringen for en funktion.
forekomst af
Syntax: print(function_name.__doc__)>
Eksempel: Tilføjelse af Docstring til funktionen
Python3 # A simple Python function to check # whether x is even or odd def evenOdd(x): '''Function to check if the number is even or odd''' if (x % 2 == 0): print('even') else: print('odd') # Driver code to call the function print(evenOdd.__doc__)> Produktion:
Function to check if the number is even or odd>
Python-funktion i funktioner
En funktion, der er defineret i en anden funktion, er kendt som indre funktion eller indlejret funktion . Indlejrede funktioner kan få adgang til variabler i det omsluttende omfang. Indre funktioner bruges, så de kan beskyttes mod alt, der sker uden for funktionen.
Python3 # Python program to # demonstrate accessing of # variables of nested functions def f1(): s = 'I love techcodeview.com' def f2(): print(s) f2() # Driver's code f1()>
Produktion:
I love techcodeview.com>
Anonyme funktioner i Python
I Python, en anonym funktion betyder, at en funktion er uden navn. Som vi allerede ved, bruges def nøgleordet til at definere de normale funktioner, og lambda nøgleordet bruges til at oprette anonyme funktioner.
Python3 # Python code to illustrate the cube of a number # using lambda function def cube(x): return x*x*x cube_v2 = lambda x : x*x*x print(cube(7)) print(cube_v2(7))>
Produktion:
343 343>
Rekursive funktioner i Python
Rekursion i Python refererer til, når en funktion kalder sig selv. Der er mange tilfælde, hvor du skal bygge en rekursiv funktion for at løse Matematiske og rekursive problemer.
Brug af en rekursiv funktion bør ske med forsigtighed, da en rekursiv funktion kan blive som en ikke-terminerende sløjfe. Det er bedre at tjekke din exit-erklæring, mens du opretter en rekursiv funktion.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Produktion
24>
Her har vi lavet en rekursiv funktion til at beregne tallets faktoriale. Du kan se slutsætningen for denne funktion er, når n er lig med 0.
Returerklæring i Python-funktion
Funktionsretur-sætningen bruges til at forlade en funktion og gå tilbage til funktionskalderen og returnere den angivne værdi eller dataelement til den, der ringer. Syntaksen for returneringserklæringen er:
return [expression_list]>
Return-sætningen kan bestå af en variabel, et udtryk eller en konstant, som returneres i slutningen af funktionsudførelsen. Hvis ingen af ovenstående er til stede i returneringssætningen, returneres et None-objekt.
Eksempel: Python Funktion Return Statement
Python3 def square_value(num): '''This function returns the square value of the entered number''' return num**2 print(square_value(2)) print(square_value(-4))>
Produktion:
4 16>
Pass by Reference og Pass by Value
En vigtig ting at bemærke er, i Python er hvert variabelnavn en reference. Når vi sender en variabel til en funktion Python, oprettes en ny reference til objektet. Parameter passing i Python er det samme som reference passing i Java.
Python3 # Here x is a new reference to same list lst def myFun(x): x[0] = 20 # Driver Code (Note that lst is modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>
Produktion:
[20, 11, 12, 13, 14, 15]>
Når vi sender en reference og ændrer den modtagne reference til noget andet, brydes forbindelsen mellem de beståede og modtagne parametre. Overvej for eksempel nedenstående program som følger:
Python3 def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = [20, 30, 40] # Driver Code (Note that lst is not modified # after function call. lst = [10, 11, 12, 13, 14, 15] myFun(lst) print(lst)>
Produktion:
[10, 11, 12, 13, 14, 15]>
Et andet eksempel viser, at referencelinket brydes, hvis vi tildeler en ny værdi (inde i funktionen).
Python3 def myFun(x): # After below line link of x with previous # object gets broken. A new object is assigned # to x. x = 20 # Driver Code (Note that x is not modified # after function call. x = 10 myFun(x) print(x)>
Produktion:
10>
Dyrke motion: Prøv at gætte outputtet af følgende kode.
Python3 def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>
Produktion:
2 3>
hurtige links
- Quiz om Python-funktioner
- Forskellen mellem metode og funktion i Python
- First Class-funktioner i Python
- Seneste artikler om Python-funktioner .
Ofte stillede spørgsmål - Python-funktioner
Q1. Hvad er funktion i Python?
Python-funktionen er en kodeblok, der kun kører, når den kaldes. Den er programmeret til at returnere den specifikke opgave. Du kan sende værdier i funktioner kaldet parametre. Det hjælper med at udføre gentagne opgaver.
Q2. Hvad er de 4 typer funktioner i Python?
Hovedtyperne af funktioner i Python er:
- Indbygget funktion
- Brugerdefineret funktion
- Lambda funktioner
- Rekursive funktioner
Q3. H at skrive en funktion i Python ?
For at skrive en funktion i Python kan du bruge nøgleordet def og derefter skrive funktionsnavnet. Du kan angive funktionskoden efter brug ':'. Grundlæggende syntaks til at definere en funktion er:
def funktionsnavn():
#udmelding
Q4. Hvad er parametrene for en funktion i Python?
Parametre i Python er de variable, der tager de værdier, der sendes som argumenter, når funktionerne kaldes. En funktion kan have et hvilket som helst antal parametre. Du kan også indstille standardværdien til en parameter i Python.