logo

Python-funksjoner

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:



Python-funksjoner

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

Merk: Følgende eksempler er definert ved å bruke syntaks 1, prøv å konvertere dem i syntaks 2 for øving.

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

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.