Funzioni Python è un blocco di istruzioni che restituiscono l'attività specifica. L'idea è quella di mettere insieme alcune attività eseguite comunemente o ripetutamente e creare una funzione in modo che invece di scrivere lo stesso codice ancora e ancora per input diversi, possiamo eseguire le chiamate di funzione per riutilizzare il codice in esso contenuto più e più volte.
Alcuni Vantaggi dell'utilizzo delle funzioni
- Aumenta la leggibilità del codice
- Aumentare la riusabilità del codice
Dichiarazione di funzioni Python
La sintassi per dichiarare una funzione è:

Sintassi della dichiarazione di funzioni Python
Tipi di funzioni in Python
Di seguito sono riportati i diversi tipi di funzioni in Pitone :
- Funzione di libreria incorporata: Questi sono Funzioni standard in Python che sono disponibili per l'uso.
- Funzione definita dall'utente: Possiamo creare le nostre funzioni in base alle nostre esigenze.
Creare una funzione in Python
Possiamo definire una funzione in Python, usando il metodo def parola chiave. Possiamo aggiungere qualsiasi tipo di funzionalità e proprietà come richiesto. Dall'esempio seguente, possiamo capire come scrivere una funzione in Python. In questo modo possiamo creare la definizione della funzione Python utilizzando la parola chiave def.
Python3 # A simple Python function def fun(): print('Welcome to GFG')>
Chiamare una funzione in Python
Dopo aver creato una funzione in Python possiamo chiamarla utilizzando il nome della funzione Python seguito da parentesi contenenti i parametri di quella particolare funzione. Di seguito è riportato l'esempio per chiamare la funzione def Python.
Python3 # A simple Python function def fun(): print('Welcome to GFG') # Driver code to call a function fun()>
Produzione:
Welcome to GFG>
Funzione Python con parametri
Se hai esperienza in C/C++ o Java, allora devi pensare a tipo di restituzione della funzione e tipo di dati di argomenti. Ciò è possibile anche in Python (in particolare per Python 3.5 e versioni successive).
Sintassi della funzione Python con parametri
def function_name(parameter: data_type) ->return_type: '''Docstring''' # corpo della funzione return espressione>
Nell'esempio seguente viene utilizzato argomenti e parametri che imparerai più avanti in questo articolo in modo da poter tornare su di esso se non capito.
Python3 def add(num1: int, num2: int) ->int: '''Somma due numeri''' num3 = num1 + num2 return num3 # Codice driver num1, num2 = 5, 15 ans = add(num1, num2) print(f'La somma di {num1} e {num2} risultati {ans}.')>
Produzione:
tabella desc in mysql
The addition of 5 and 15 results 20.>
Python3Nota: I seguenti esempi sono definiti utilizzando la sintassi 1, prova a convertirli nella sintassi 2 per esercitarti.
# 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))>
Produzione:
False True>
Argomenti delle funzioni Python
Gli argomenti sono i valori passati all'interno delle parentesi della funzione. Una funzione può avere un numero qualsiasi di argomenti separati da una virgola.
In questo esempio creeremo una semplice funzione in Python per verificare se il numero passato come argomento alla funzione è pari o dispari.
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)>
Produzione:
even odd>
Tipi di argomenti di funzioni Python
Python supporta vari tipi di argomenti che possono essere passati al momento della chiamata alla funzione. In Python, abbiamo i seguenti tipi di argomenti di funzione in Python:
- Argomento predefinito
- Argomenti delle parole chiave (argomenti denominati)
- Argomenti posizionali
- Argomentazioni arbitrarie (argomenti di lunghezza variabile *args e **kwargs)
Discutiamo ogni tipo in dettaglio.
Argomenti predefiniti
UN argomento predefinito è un parametro che assume un valore predefinito se non viene fornito un valore nella chiamata di funzione per quell'argomento. L'esempio seguente illustra gli argomenti Default per scrivere funzioni in 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)>
Produzione:
x: 10 y: 50>
Come gli argomenti predefiniti del C++, qualsiasi numero di argomenti in una funzione può avere un valore predefinito. Ma una volta che abbiamo un argomento predefinito, anche tutti gli argomenti alla sua destra devono avere valori predefiniti.
Argomenti con parole chiave
L'idea è di consentire al chiamante di specificare il nome dell'argomento con valori in modo che il chiamante non abbia bisogno di ricordare l'ordine dei parametri.
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')>
Produzione:
Geeks Practice Geeks Practice>
Argomenti posizionali
Abbiamo usato il Argomento di posizione durante la chiamata della funzione in modo che il primo argomento (o valore) sia assegnato a nome e il secondo argomento (o valore) sia assegnato a età. Cambiando la posizione, o se si dimentica l'ordine delle posizioni, i valori possono essere utilizzati nei posti sbagliati, come mostrato nell'esempio Caso-2 di seguito, dove 27 è assegnato al nome e Suraj è assegnato all'età.
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')>
Produzione:
Case-1: Hi, I am Suraj My age is 27 Case-2: Hi, I am 27 My age is Suraj>
Argomenti di parole chiave arbitrarie
Negli argomenti di parole chiave arbitrarie di Python, *args e **kwargs può passare un numero variabile di argomenti a una funzione utilizzando simboli speciali. Ci sono due simboli speciali:
- *args in Python (argomenti non basati su parole chiave)
- **kwargs in Python (argomenti con parole chiave)
Esempio 1: Argomento non contenente parole chiave a lunghezza variabile
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')>
Produzione:
Hello Welcome to techcodeview.com>
Esempio 2: Argomenti delle parole chiave di lunghezza variabile
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')>
Produzione:
first == Geeks mid == for last == Geeks>
Docstring
La prima stringa dopo la funzione è chiamata stringa del documento o Docstring in breve. Viene utilizzato per descrivere la funzionalità della funzione. L'uso di docstring nelle funzioni è facoltativo ma è considerato una buona pratica.
La sintassi seguente può essere utilizzata per stampare la docstring di una funzione.
arachidi contro arachidi
Syntax: print(function_name.__doc__)>
Esempio: Aggiunta di Docstring alla funzione
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__)>
Produzione:
Function to check if the number is even or odd>
Funzione Python all'interno di Funzioni
Una funzione definita all'interno di un'altra funzione è nota come funzione interiore O funzione annidata . Le funzioni nidificate possono accedere alle variabili dell'ambito che le racchiude. Le funzioni interne vengono utilizzate in modo da poter essere protette da tutto ciò che accade al di fuori della funzione.
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()>
Produzione:
I love techcodeview.com>
Funzioni anonime in Python
In Python, un funzione anonima significa che una funzione è senza nome. Come già sappiamo, la parola chiave def viene utilizzata per definire le funzioni normali e la parola chiave lambda viene utilizzata per creare funzioni anonime.
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))>
Produzione:
343 343>
Funzioni ricorsive in Python
Ricorsione in Python si riferisce a quando una funzione chiama se stessa. Ci sono molti casi in cui devi costruire una funzione ricorsiva da risolvere Problemi matematici e ricorsivi.
L'uso di una funzione ricorsiva dovrebbe essere fatto con cautela, poiché una funzione ricorsiva può diventare come un ciclo senza terminazione. È meglio controllare l'istruzione di uscita durante la creazione di una funzione ricorsiva.
Python3 def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(4))>
Produzione
24>
Qui abbiamo creato una funzione ricorsiva per calcolare il fattoriale del numero. Puoi vedere l'istruzione finale per questa funzione quando n è uguale a 0.
Dichiarazione di ritorno nella funzione Python
L'istruzione return della funzione viene utilizzata per uscire da una funzione e tornare al chiamante della funzione e restituire il valore o l'elemento dati specificato al chiamante. La sintassi per l'istruzione return è:
return [expression_list]>
L'istruzione return può essere costituita da una variabile, un'espressione o una costante che viene restituita alla fine dell'esecuzione della funzione. Se nessuno dei precedenti è presente con l'istruzione return viene restituito un oggetto None.
Esempio: Dichiarazione di restituzione della funzione Python
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))>
Produzione:
4 16>
Passa per riferimento e Passa per valore
Una cosa importante da notare è che in Python ogni nome di variabile è un riferimento. Quando passiamo una variabile a una funzione Python, viene creato un nuovo riferimento all'oggetto. Il passaggio dei parametri in Python è uguale al passaggio dei riferimenti in 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)>
Produzione:
[20, 11, 12, 13, 14, 15]>
Quando passiamo un riferimento e cambiamo il riferimento ricevuto con qualcos'altro, la connessione tra i parametri passati e ricevuti viene interrotta. Ad esempio, considera il programma seguente come segue:
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)>
Produzione:
[10, 11, 12, 13, 14, 15]>
Un altro esempio dimostra che il collegamento di riferimento viene interrotto se assegniamo un nuovo valore (all'interno della funzione).
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)>
Produzione:
10>
Esercizio: Prova a indovinare l'output del seguente codice.
Python3 def swap(x, y): temp = x x = y y = temp # Driver code x = 2 y = 3 swap(x, y) print(x) print(y)>
Produzione:
2 3>
Link veloci
- Quiz sulle funzioni Python
- Differenza tra metodo e funzione in Python
- Funzioni di prima classe in Python
- Articoli recenti sulle funzioni Python .
Domande frequenti: funzioni Python
Q1. Cos'è la funzione in Python?
La funzione Python è un blocco di codice, che viene eseguito solo quando viene chiamato. È programmato per restituire l'attività specifica. Puoi passare valori in funzioni chiamate parametri. Aiuta nell'esecuzione di compiti ripetitivi.
Q2. Quali sono i 4 tipi di funzioni in Python?
I principali tipi di funzioni in Python sono:
- Funzione incorporata
- Funzione definita dall'utente
- Funzioni lambda
- Funzioni ricorsive
Q3. H come scrivere una funzione in Python ?
Per scrivere una funzione in Python puoi usare la parola chiave def e poi scrivere il nome della funzione. È possibile fornire il codice funzione dopo l'uso ':'. La sintassi di base per definire una funzione è:
def nome_funzione():
#dichiarazione
Q4. Quali sono i parametri di una funzione in Python?
I parametri in Python sono le variabili che accettano i valori passati come argomenti quando si chiamano le funzioni. Una funzione può avere un numero qualsiasi di parametri. Puoi anche impostare il valore predefinito su un parametro in Python.