Python funktioner är ett block av uttalanden som returnerar den specifika uppgiften. Tanken är att sätta ihop några vanliga eller upprepade gånger utförda uppgifter och göra en funktion så att istället för att skriva samma kod om och om igen för olika ingångar, kan vi göra funktionsanrop för att återanvända kod som finns i den om och om igen.
Några Fördelar med att använda funktioner
- Öka kodläsbarheten
- Öka kodåteranvändbarhet
Python-funktionsdeklaration
Syntaxen för att deklarera en funktion är:

Syntax för Python-funktionsdeklaration
Typer av funktioner i Python
Nedan finns de olika typerna av funktioner i Pytonorm :
- Inbyggd biblioteksfunktion: Dessa är Standardfunktioner i Python som är tillgängliga att använda.
- Användardefinierad funktion: Vi kan skapa egna funktioner utifrån våra krav.
Skapa en funktion i Python
Vi kan definiera en funktion i Python med hjälp av def nyckelord. Vi kan lägga till vilken typ av funktionalitet och egenskaper som helst efter behov. Genom följande exempel kan vi förstå hur man skriver en funktion i Python. På detta sätt kan vi skapa Python-funktionsdefinitioner genom att använda nyckelordet def.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Anropa en funktion i Python
Efter att ha skapat en funktion i Python kan vi kalla den genom att använda namnet på funktionerna Python följt av parentes som innehåller parametrar för den specifika funktionen. Nedan är exemplet för att anropa 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 parametrar
Om du har erfarenhet av C/C++ eller Java måste du tänka på returtyp av funktionen och data typ av argument. Det är möjligt i Python också (specifikt för Python 3.5 och högre).
Python-funktionssyntax med parametrar
def function_name(parameter: data_type) ->return_type: '''Docstring''' # body av funktionen returuttryck>
Följande exempel använder argument och parametrar som du kommer att lära dig senare i den här artikeln så att du kan komma tillbaka till det igen om du inte förstår det.
Python3 def add(num1: int, num2: int) ->int: '''Lägg till två siffror''' num3 = num1 + num2 returnera num3 # Förarkod num1, num2 = 5, 15 ans = add(num1, num2) print(f'Tillägget av {num1} och {num2} resultat {ans}.')> Produktion:
The addition of 5 and 15 results 20.>
Python3Notera: Följande exempel definieras med syntax 1, försök att konvertera dem i syntax 2 för övning.
# 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 funktionsargument
Argument är de värden som skickas inom parentesen av funktionen. En funktion kan ha valfritt antal argument åtskilda med kommatecken.
I det här exemplet kommer vi att skapa en enkel funktion i Python för att kontrollera om talet som skickas som argument till funktionen är jämnt eller udda.
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 av Python-funktionsargument
Python stöder olika typer av argument som kan skickas vid tidpunkten för funktionsanropet. I Python har vi följande funktionsargumenttyper i Python:
för loop i c
- Standardargument
- Nyckelordsargument (namngivna argument)
- Positionsargument
- Godtyckliga argument (argument med variabel längd *args och **kwargs)
Låt oss diskutera varje typ i detalj.
Standardargument
A standardargument är en parameter som antar ett standardvärde om ett värde inte tillhandahålls i funktionsanropet för det argumentet. Följande exempel illustrerar standardargument för att skriva 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>
Liksom C++ standardargument kan valfritt antal argument i en funktion ha ett standardvärde. Men när vi väl har ett standardargument måste alla argument till höger om det också ha standardvärden.
Nyckelordsargument
Tanken är att låta den som ringer ange argumentnamnet med värden så att den som ringer inte behöver komma ihåg ordningen på parametrarna.
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>
Positionella argument
Vi använde Positionsargument under funktionsanropet så att det första argumentet (eller värdet) tilldelas namn och det andra argumentet (eller värdet) tilldelas ålder. Genom att ändra position, eller om du glömmer ordningen på positionerna, kan värdena användas på fel ställen, som visas i Case-2-exemplet nedan, där 27 tilldelas namnet och Suraj tilldelas åldern.
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>
Godtyckliga sökordsargument
I Python godtyckliga sökordsargument, *args och **kwargs kan skicka ett variabelt antal argument till en funktion med hjälp av speciella symboler. Det finns två specialsymboler:
- *args i Python (icke-sökordsargument)
- **kwargs i Python (sökordsargument)
Exempel 1: Argument för variabel längd utan sökord
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:
hur gammal är pete davidson
Hello Welcome to techcodeview.com>
Exempel 2: Sökordsargument med variabel längd
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örsta strängen efter funktionen kallas Dokumentsträngen eller Docstring kortfattat. Detta används för att beskriva funktionen hos funktionen. Användningen av docstring i funktioner är valfri men det anses vara en bra praxis.
Syntaxen nedan kan användas för att skriva ut docstringen för en funktion.
Syntax: print(function_name.__doc__)>
Exempel: Lägger till Docstring till 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 inom funktioner
En funktion som är definierad i en annan funktion kallas inre funktion eller kapslad funktion . Kapslade funktioner kan komma åt variabler i det omslutande omfånget. Inre funktioner används för att de ska kunna skyddas från allt som händer utanför 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>
Anonyma funktioner i Python
I Python, an anonym funktion betyder att en funktion är utan namn. Som vi redan vet används nyckelordet def för att definiera de normala funktionerna och nyckelordet lambda används för att skapa anonyma 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>
Rekursiva funktioner i Python
Rekursion i Python hänvisar till när en funktion anropar sig själv. Det finns många tillfällen när du måste bygga en rekursiv funktion för att lösa Matematiska och rekursiva problem.
Att använda en rekursiv funktion bör göras med försiktighet, eftersom en rekursiv funktion kan bli som en icke-avslutande loop. Det är bättre att kontrollera din exit-sats medan du skapar en rekursiv funktion.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Produktion
24>
Här har vi skapat en rekursiv funktion för att beräkna talets faktorial. Du kan se slutsatsen för denna funktion är när n är lika med 0.
Returnera uttalande i Python-funktionen
Funktionen return-satsen används för att lämna en funktion och gå tillbaka till funktionsanroparen och returnera det angivna värdet eller dataobjektet till den som ringer. Syntaxen för retursatsen är:
return [expression_list]>
Return-satsen kan bestå av en variabel, ett uttryck eller en konstant som returneras i slutet av funktionsexekveringen. Om inget av ovanstående finns med return-satsen returneras ett None-objekt.
Exempel: 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:
ram tkinter
4 16>
Pass by Reference och Pass by Value
En viktig sak att notera är att i Python är varje variabelnamn en referens. När vi skickar en variabel till en funktion Python skapas en ny referens till objektet. Parameterpassering i Python är detsamma som referenspassering 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 skickar en referens och ändrar den mottagna referensen till något annat bryts kopplingen mellan de passerade och mottagna parametrarna. Tänk till exempel på följande program:
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]>
Ett annat exempel visar att referenslänken bryts om vi tilldelar ett nytt värde (inuti 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>
Träning: Försök gissa resultatet av följande kod.
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>
snabblänkar
- Frågesport om Python-funktioner
- Skillnaden mellan metod och funktion i Python
- First Class-funktioner i Python
- Nya artiklar om Python-funktioner .
Vanliga frågor - Python-funktioner
Q1. Vad är funktion i Python?
Python-funktionen är ett kodblock som bara körs när den anropas. Den är programmerad att returnera den specifika uppgiften. Du kan skicka värden i funktioner som kallas parametrar. Det hjälper till att utföra repetitiva uppgifter.
Q2. Vilka är de fyra typerna av funktioner i Python?
Huvudtyperna av funktioner i Python är:
- Inbyggd funktion
- Användardefinierad funktion
- Lambdafunktioner
- Rekursiva funktioner
Q3. H ow att skriva en funktion i Python ?
För att skriva en funktion i Python kan du använda nyckelordet def och sedan skriva funktionsnamnet. Du kan ange funktionskoden efter användning ':'. Grundläggande syntax för att definiera en funktion är:
def function_name():
#påstående
Q4. Vilka är parametrarna för en funktion i Python?
Parametrar i Python är de variabler som tar värdena som skickas som argument när funktionerna anropas. En funktion kan ha hur många parametrar som helst. Du kan också ställa in standardvärde till en parameter i Python.