Funcions de Python és un bloc d'instruccions que retornen la tasca específica. La idea és ajuntar algunes tasques que es fan habitualment o repetidament i fer una funció perquè en comptes d'escriure el mateix codi una vegada i una altra per a diferents entrades, puguem fer les trucades de funció per reutilitzar el codi que hi conté una i altra vegada.
Alguns Avantatges de l'ús de les funcions
- Augmenta la llegibilitat del codi
- Augmentar la reutilització del codi
Declaració de la funció Python
La sintaxi per declarar una funció és:

Sintaxi de la declaració de funcions de Python
Tipus de funcions en Python
A continuació es mostren els diferents tipus de funcions Python :
- Funció de biblioteca integrada: Aquests són Funcions estàndard en Python que estan disponibles per utilitzar.
- Funció definida per l'usuari: Podem crear les nostres pròpies funcions en funció dels nostres requisits.
Creació d'una funció en Python
Podem definir una funció en Python, utilitzant el def paraula clau. Podem afegir-hi qualsevol tipus de funcionalitats i propietats segons necessitem. Amb l'exemple següent, podem entendre com escriure una funció en Python. D'aquesta manera podem crear una definició de funció de Python utilitzant la paraula clau def.
Python 3 # A simple Python function def fun(): print('Welcome to GFG')> Crida a una funció en Python
Després de crear una funció a Python, podem cridar-la utilitzant el nom de les funcions Python seguit d'un parèntesi que contingui els paràmetres d'aquesta funció en particular. A continuació es mostra l'exemple per cridar la funció def Python.
Python 3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()> Sortida:
Welcome to GFG>
Funció Python amb paràmetres
Si teniu experiència en C/C++ o Java, haureu d'estar pensant en el tipus de retorn de la funció i tipus de dades d'arguments. Això també és possible a Python (específicament per a Python 3.5 i posteriors).
Sintaxi de la funció Python amb paràmetres
def function_name(parameter: data_type) ->return_type: '''Docstring''' # cos de l'expressió de retorn de la funció>
L'exemple següent utilitza arguments i paràmetres que aprendràs més endavant en aquest article perquè puguis tornar-hi si no ho entens.
Python 3 def add(num1: int, num2: int) ->int: '''Afegeix dos números''' num3 = num1 + num2 return num3 # Codi del controlador num1, num2 = 5, 15 ans = add(num1, num2) print(f'L'addició de {num1} i {num2} resultats {ans}.')>>> Sortida:
The addition of 5 and 15 results 20.>
Python 3Nota: Els exemples següents es defineixen utilitzant la sintaxi 1, intenteu convertir-los a la sintaxi 2 per a la pràctica.
# 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))>
Sortida:
En aquest exemple, crearem una funció senzilla en Python per comprovar si el nombre passat com a argument a la funció és parell o senar.
Python 3 # 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)> Sortida:
even odd>
Tipus d'arguments de funció de Python
Python admet diversos tipus d'arguments que es poden passar en el moment de la crida de la funció. A Python, tenim els següents tipus d'arguments de funció a Python:
- Argument per defecte
- Arguments de paraula clau (arguments anomenats)
- Arguments posicionals
- Arguments arbitraris (arguments de longitud variable *args i **kwargs)
Parlem de cada tipus en detall.
Arguments per defecte
A argument predeterminat és un paràmetre que assumeix un valor per defecte si no es proporciona cap valor a la crida de funció d'aquest argument. L'exemple següent il·lustra els arguments predeterminats per escriure funcions en Python.
làtex de mida de lletraPython 3
# 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)> Sortida:
x: 10 y: 50>
Igual que els arguments predeterminats de C++, qualsevol nombre d'arguments d'una funció pot tenir un valor per defecte. Però un cop tenim un argument per defecte, tots els arguments a la seva dreta també han de tenir valors per defecte.
Arguments de paraules clau
La idea és permetre que la persona que truca especifiqui el nom de l'argument amb valors de manera que la persona que truca no necessiti recordar l'ordre dels paràmetres.
Python 3 # 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')>
Sortida:
Geeks Practice Geeks Practice>
Arguments posicionals
Hem utilitzat el Argument de posició durant la crida a la funció de manera que el primer argument (o valor) s'assigna a nom i el segon argument (o valor) s'assigna a l'edat. Si canvieu la posició, o si oblideu l'ordre de les posicions, els valors es poden utilitzar en llocs equivocats, com es mostra a l'exemple del cas 2 següent, on s'assigna 27 al nom i Suraj s'assigna a l'edat.
Python 3 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')> Sortida:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Arguments de paraules clau arbitraris
En els arguments de paraula clau arbitraris de Python, *args, i **kwargs pot passar un nombre variable d'arguments a una funció utilitzant símbols especials. Hi ha dos símbols especials:
- *args en Python (arguments que no són de paraula clau)
- **kwargs a Python (arguments de paraula clau)
Exemple 1: Argument de longitud variable que no són paraules clau
Python 3 # 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')> Sortida:
Hello Welcome to techcodeview.com>
Exemple 2: Arguments de paraula clau de longitud variable
Python 3 # 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')> Sortida:
first == Geeks mid == for last == Geeks>
Docstring
La primera cadena després de la funció s'anomena cadena de document o Docstring en resum. S'utilitza per descriure la funcionalitat de la funció. L'ús de docstring a les funcions és opcional però es considera una bona pràctica.
La sintaxi següent es pot utilitzar per imprimir la cadena de documents d'una funció.
Syntax: print(function_name.__doc__)>
Exemple: Afegint Docstring a la funció
Python 3 # 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__)> Sortida:
Function to check if the number is even or odd>
Funció Python dins de Funcions
Una funció que es defineix dins d'una altra funció es coneix com a funció interna o funció imbricada . Les funcions imbricades poden accedir a variables de l'àmbit que l'agrupen. Les funcions internes s'utilitzen perquè es puguin protegir de tot el que passa fora de la funció.
Python 3 # 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()>
Sortida:
I love techcodeview.com>
Funcions anònimes en Python
En Python, an funció anònima significa que una funció no té nom. Com ja sabem, la paraula clau def s'utilitza per definir les funcions normals i la paraula clau lambda s'utilitza per crear funcions anònimes.
Python 3 # 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))>
Sortida:
343 343>
Funcions recursives en Python
Recursió a Python es refereix a quan una funció es crida a si mateixa. Hi ha molts casos en què heu de construir una funció recursiva per resoldre Problemes matemàtics i recursius.
L'ús d'una funció recursiva s'ha de fer amb precaució, ja que una funció recursiva pot esdevenir com un bucle que no s'acaba. És millor comprovar la vostra instrucció de sortida mentre creeu una funció recursiva.
Python 3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Sortida
24>
Aquí hem creat una funció recursiva per calcular el factorial del nombre. Podeu veure que la declaració final d'aquesta funció és quan n és igual a 0.
Declaració de retorn a la funció Python
La instrucció de retorn de funció s'utilitza per sortir d'una funció i tornar a la persona que truca a la funció i retornar el valor o l'element de dades especificats a la persona que truca. La sintaxi de la instrucció return és:
return [expression_list]>
La instrucció de retorn pot consistir en una variable, una expressió o una constant que es retorna al final de l'execució de la funció. Si cap dels anteriors no està present amb la instrucció de retorn, es retorna un objecte None.
Exemple: Declaració de retorn de la funció Python
Python 3 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))>
Sortida:
4 16>
Passa per referència i passa per valor
Una cosa important a tenir en compte és que a Python cada nom de variable és una referència. Quan passem una variable a una funció Python, es crea una nova referència a l'objecte. El pas de paràmetres a Python és el mateix que el pas de referència a Java.
Python 3 # 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)>
Sortida:
[20, 11, 12, 13, 14, 15]>
Quan passem una referència i canviem la referència rebuda per una altra cosa, la connexió entre els paràmetres passats i rebuts es trenca. Per exemple, considereu el programa següent de la següent manera:
Python 3 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)>
Sortida:
[10, 11, 12, 13, 14, 15]>
Un altre exemple demostra que l'enllaç de referència es trenca si assignem un valor nou (dins de la funció).
Python 3 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)>
Sortida:
10>
Exercici: Intenteu endevinar la sortida del codi següent.
Python 3 def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>
Sortida:
2 3>
Links ràpids
- Test sobre les funcions de Python
- Diferència entre mètode i funció a Python
- Funcions de primera classe en Python
- Articles recents sobre les funcions de Python .
Preguntes freqüents: funcions de Python
Q1. Què és la funció a Python?
La funció Python és un bloc de codi, que només s'executa quan es crida. Està programat per retornar la tasca específica. Podeu passar valors en funcions anomenades paràmetres. Ajuda a realitzar tasques repetitives.
P2. Quins són els 4 tipus de funcions a Python?
Els principals tipus de funcions en Python són:
- Funció integrada
- Funció definida per l'usuari
- Funcions lambda
- Funcions recursives
P3. H Com escriure una funció en Python ?
Per escriure una funció en Python podeu utilitzar la paraula clau def i després escriure el nom de la funció. Podeu proporcionar el codi de funció després d'utilitzar-lo ‘:’. La sintaxi bàsica per definir una funció és:
def nom_funció():
#declaració
P4. Quins són els paràmetres d'una funció a Python?
Els paràmetres en Python són les variables que prenen els valors passats com a arguments en cridar les funcions. Una funció pot tenir qualsevol nombre de paràmetres. També podeu establir el valor predeterminat a un paràmetre a Python.