logo

Python funktioner

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:



Python funktioner

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.>

Bemærk: Følgende eksempler er defineret ved hjælp af syntaks 1, prøv at konvertere dem i syntaks 2 for at øve dig.

Python3
# 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.