Python-funksjoner er en blokk med utsagn som returnerer den spesifikke oppgaven. Ideen er å sette noen vanlige eller gjentatte oppgaver sammen og lage en funksjon slik at i stedet for å skrive den samme koden igjen og igjen for forskjellige innganger, kan vi gjøre funksjonskallene for å gjenbruke koden som finnes i den om og om igjen.
Noen Fordeler med å bruke funksjoner
- Øk kodelesbarheten
- Øk kodegjenbrukbarhet
Python-funksjonserklæring
Syntaksen for å deklarere en funksjon er:

Syntaks for Python-funksjonserklæring
Typer funksjoner i Python
Nedenfor er de forskjellige typene funksjoner i Python :
- Innebygd bibliotekfunksjon: Disse er Standard funksjoner i Python som er tilgjengelig for bruk.
- Brukerdefinert funksjon: Vi kan lage våre egne funksjoner basert på våre krav.
Opprette en funksjon i Python
Vi kan definere en funksjon i Python ved å bruke def nøkkelord. Vi kan legge til alle typer funksjoner og egenskaper etter behov. Ved følgende eksempel kan vi forstå hvordan man skriver en funksjon i Python. På denne måten kan vi lage Python-funksjonsdefinisjoner ved å bruke def nøkkelord.
Python3 # A simple Python function def fun(): print('Welcome to GFG')> Kalle opp en funksjon i Python
Etter å ha opprettet en funksjon i Python kan vi kalle den ved å bruke navnet på funksjonene Python etterfulgt av parenteser som inneholder parametere for den aktuelle funksjonen. Nedenfor er eksemplet for å kalle def-funksjonen Python.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Produksjon:
Welcome to GFG>
Python-funksjon med parametere
Hvis du har erfaring i C/C++ eller Java, må du tenke på returtype av funksjonen og data-type av argumenter. Det er også mulig i Python (spesifikt for Python 3.5 og nyere).
Python-funksjonssyntaks med parametere
def function_name(parameter: data_type) ->return_type: '''Docstring''' # body av funksjonen returuttrykk>
Følgende eksempel bruker argumenter og parametere som du vil lære senere i denne artikkelen, slik at du kan komme tilbake til det igjen hvis du ikke forstår det.
Python3 def add(num1: int, num2: int) ->int: '''Legg til to tall''' num3 = num1 + num2 returner num3 # Driverkode num1, num2 = 5, 15 ans = add(num1, num2) print(f'Tillegg av {num1} og {num2} resultater {ans}.')> Produksjon:
fjærverktøypakke
The addition of 5 and 15 results 20.>
Python3Merk: Følgende eksempler er definert ved å bruke syntaks 1, prøv å konvertere dem i syntaks 2 for øving.
# 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))>
Produksjon:
False True>
Python funksjonsargumenter
Argumenter er verdiene som sendes innenfor parentesen til funksjonen. En funksjon kan ha et hvilket som helst antall argumenter atskilt med komma.
I dette eksemplet vil vi lage en enkel funksjon i Python for å sjekke om tallet som sendes som argument til funksjonen er partall eller oddetall.
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)> Produksjon:
even odd>
Typer Python-funksjonsargumenter
Python støtter ulike typer argumenter som kan sendes på tidspunktet for funksjonskallet. I Python har vi følgende funksjonsargumenttyper i Python:
- Standardargument
- Søkeordargumenter (navngitte argumenter)
- Posisjonsargumenter
- Vilkårlige argumenter (argumenter med variabel lengde *args og **kwargs)
La oss diskutere hver type i detalj.
Standardargumenter
EN standard argument er en parameter som antar en standardverdi hvis en verdi ikke er angitt i funksjonskallet for det argumentet. Følgende eksempel illustrerer standardargumenter for å skrive funksjoner 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)> Produksjon:
x: 10 y: 50>
Som C++ standardargumenter, kan et hvilket som helst antall argumenter i en funksjon ha en standardverdi. Men når vi først har et standardargument, må alle argumentene til høyre også ha standardverdier.
Søkeordargumenter
Tanken er å la den som ringer spesifisere argumentnavnet med verdier slik at den som ringer ikke trenger å huske rekkefølgen på parametere.
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')>
Produksjon:
Geeks Practice Geeks Practice>
Posisjonsargumenter
Vi brukte Posisjonsargument under funksjonskallet slik at det første argumentet (eller verdien) tilordnes navn og det andre argumentet (eller verdien) tilordnes alder. Ved å endre posisjonen, eller hvis du glemmer rekkefølgen på posisjonene, kan verdiene brukes på feil steder, som vist i Case-2 eksempelet nedenfor, der 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')> Produksjon:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Vilkårlige søkeordargumenter
I Python Arbitrary Keyword Arguments, *args, og **kwargs kan sende et variabelt antall argumenter til en funksjon ved hjelp av spesielle symboler. Det er to spesielle symboler:
- *args i Python (ikke-søkeordargumenter)
- **kwargs i Python (søkeordargumenter)
Eksempel 1: Argument for ikke-søkeord med variabel lengde
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')> Produksjon:
Hello Welcome to techcodeview.com>
Eksempel 2: Søkeordargumenter med variabel lengde
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')> Produksjon:
first == Geeks mid == for last == Geeks>
Docstring
Den første strengen etter funksjonen kalles dokumentstrengen eller Docstring kort oppsummert. Dette brukes til å beskrive funksjonaliteten til funksjonen. Bruk av docstring i funksjoner er valgfritt, men det anses som en god praksis.
Syntaksen nedenfor kan brukes til å skrive ut docstringen til en funksjon.
sortert arraylist java
Syntax: print(function_name.__doc__)>
Eksempel: Legger til Docstring til funksjonen
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__)> Produksjon:
Function to check if the number is even or odd>
Python-funksjon i funksjoner
En funksjon som er definert i en annen funksjon er kjent som indre funksjon eller nestet funksjon . Nestede funksjoner kan få tilgang til variabler i det vedlagte omfanget. Indre funksjoner brukes slik at de kan beskyttes mot alt som skjer utenfor funksjonen.
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()>
Produksjon:
I love techcodeview.com>
Anonyme funksjoner i Python
I Python, an anonym funksjon betyr at en funksjon er uten navn. Som vi allerede vet brukes nøkkelordet def for å definere de normale funksjonene og lambda-nøkkelordet brukes til å lage anonyme funksjoner.
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))>
Produksjon:
343 343>
Rekursive funksjoner i Python
Rekursjon i Python refererer til når en funksjon kaller seg selv. Det er mange tilfeller når du må bygge en rekursiv funksjon for å løse Matematiske og rekursive problemer.
Å bruke en rekursiv funksjon bør gjøres med forsiktighet, da en rekursiv funksjon kan bli som en ikke-terminerende sløyfe. Det er bedre å sjekke exit-erklæringen mens du oppretter en rekursiv funksjon.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Produksjon
24>
Her har vi laget en rekursiv funksjon for å beregne faktoren til tallet. Du kan se sluttsetningen for denne funksjonen er når n er lik 0.
Returerklæring i Python-funksjonen
Funksjonen return-setningen brukes til å gå ut av en funksjon og gå tilbake til funksjonsanroperen og returnere den angitte verdien eller dataelementet til den som ringer. Syntaksen for retursetningen er:
return [expression_list]>
Return-setningen kan bestå av en variabel, et uttrykk eller en konstant som returneres på slutten av funksjonsutførelsen. Hvis ingen av de ovennevnte er til stede med retursetningen, returneres et None-objekt.
Eksempel: Python-funksjon Returerklæring
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))>
Produksjon:
4 16>
Pass by Reference og Pass by Value
En viktig ting å merke seg er at i Python er hvert variabelnavn en referanse. Når vi sender en variabel til en funksjon Python, opprettes en ny referanse til objektet. Parameterpassering i Python er det samme som referansepassering 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)>
Produksjon:
[20, 11, 12, 13, 14, 15]>
Når vi sender en referanse og endrer den mottatte referansen til noe annet, brytes forbindelsen mellom de beståtte og mottatte parameterne. Tenk for eksempel på programmet nedenfor 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)>
Produksjon:
[10, 11, 12, 13, 14, 15]>
Et annet eksempel viser at referanselenken blir brutt hvis vi tildeler en ny verdi (inne i funksjonen).
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)>
Produksjon:
10>
Trening: Prøv å gjette resultatet av 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)>
Produksjon:
2 3>
Hurtigkoblinger
- Quiz om Python-funksjoner
- Forskjellen mellom metode og funksjon i Python
- First Class-funksjoner i Python
- Nylige artikler om Python-funksjoner .
Vanlige spørsmål - Python-funksjoner
Q1. Hva er funksjon i Python?
Python-funksjonen er en kodeblokk som bare kjører når den kalles. Den er programmert til å returnere den spesifikke oppgaven. Du kan sende verdier i funksjoner som kalles parametere. Det hjelper med å utføre repeterende oppgaver.
Q2. Hva er de 4 typene funksjoner i Python?
Hovedtypene av funksjoner i Python er:
- Innebygd funksjon
- Brukerdefinert funksjon
- Lambdafunksjoner
- Rekursive funksjoner
Q3. H å skrive en funksjon i Python ?
For å skrive en funksjon i Python kan du bruke nøkkelordet def og deretter skrive funksjonsnavnet. Du kan oppgi funksjonskoden etter bruk ':'. Grunnleggende syntaks for å definere en funksjon er:
def funksjonsnavn():
#uttalelse
Q4. Hva er parametrene til en funksjon i Python?
Parametere i Python er variablene som tar verdiene som sendes som argumenter når funksjonene kalles. En funksjon kan ha et hvilket som helst antall parametere. Du kan også sette standardverdien til en parameter i Python.