Funzioni In Python
Funzioni in Python¶
Obiettivi della Lezione¶
Alla fine di questa lezione, sarai in grado di:
- Comprendere cosa sono le funzioni in Python e perché sono utili.
- Definire e chiamare funzioni personalizzate.
- Utilizzare parametri e argomenti nelle funzioni.
- Riconoscere la differenza tra variabili locali e globali.
- Applicare valori di default e argomenti con nome nelle chiamate di funzione.
- Restituire valori dalle funzioni usando la parola chiave
return
.
Introduzione¶
Le funzioni sono blocchi di codice riutilizzabili che eseguono un compito specifico. Consentono di organizzare il codice in modo modulare, migliorandone la leggibilità e facilitandone la manutenzione. In Python, le funzioni sono oggetti di prima classe, il che significa che possono essere passate come argomenti, restituite da altre funzioni e assegnate a variabili.
Spiegazione Teorica¶
Definizione di una Funzione¶
In Python, una funzione si definisce utilizzando la parola chiave def
, seguita dal nome della funzione e da eventuali parametri racchiusi tra parentesi. Il blocco di codice che costituisce la funzione deve essere indentato.
Sintassi:
def nome_funzione(parametri):
'''Documentazione della funzione (opzionale)'''
# corpo della funzione
return valore_di_ritorno (opzionale)
Chiamata di una Funzione¶
Per eseguire una funzione, si effettua una chiamata usando il nome della funzione seguito da parentesi contenenti eventuali argomenti.
Esempio:
nome_funzione(argomenti)
Parametri e Argomenti¶
- Parametri: variabili elencate nella definizione della funzione.
- Argomenti: valori forniti alla funzione quando viene chiamata.
Esistono diversi tipi di argomenti:
- Posizionali: assegnati ai parametri in base alla posizione.
- Con nome (keyword arguments): assegnati specificando il nome del parametro.
Valori di Default¶
È possibile assegnare un valore di default ai parametri, rendendoli opzionali durante la chiamata della funzione.
Esempio:
def saluta(nome, messaggio="Ciao"):
print(f"{messaggio}, {nome}!")
saluta('Marco')
Ciao, Marco!
return
e Valori di Ritorno¶
La parola chiave return
viene utilizzata per restituire un valore dalla funzione. Se return
non è presente, la funzione restituisce None
di default.
Esempio:
def somma(a, b):
return a + b
somma(2, 5)
7
def saluta():
print("Ciao, mondo!")
saluta()
Ciao, mondo!
Funzione con Parametri¶
def saluta_utente(nome):
print(f"Ciao, {nome}!")
saluta_utente("Alice")
Ciao, Alice!
Funzione con Valore di Ritorno¶
def quadrato(numero):
return numero ** 2
risultato = quadrato(5)
print(risultato)
25
Utilizzo di Valori di Default¶
def info_persona(nome, eta=18):
print(f"Nome: {nome}")
print(f"Età: {eta}")
info_persona("Bob")
Nome: Bob Età: 18
Argomenti con Nome¶
def calcola_potenza(base, esponente):
return base ** esponente
risultato = calcola_potenza(esponente=3, base=2)
print(risultato)
8
Variabili Locali vs Globali¶
x = 10 # Variabile globale
def funzione():
x = 5 # Variabile locale
print(f"Valore di x all'interno della funzione: {x}")
funzione()
print(f"Valore di x all'esterno della funzione: {x}")
Valore di x all'interno della funzione: 5 Valore di x all'esterno della funzione: 10
def benvenuto(nome):
print(f"Benvenuto, {nome}!")
Verifica:
benvenuto("Luca")
Benvenuto, Luca!
Output atteso:
Benvenuto, Luca!
Esercizio 2: Calcolo dell’Area di un Rettangolo¶
Scrivi una funzione calcola_area
che prenda la base e l’altezza di un rettangolo e restituisca la sua area.
Soluzione:
def calcola_area(base, altezza):
return base * altezza
Verifica:
area = calcola_area(5, 10)
print(f"L'area del rettangolo è: {area}")
L'area del rettangolo è: 50
Esercizio 3: Funzione con Valori di Default¶
Crea una funzione stampa_info
che accetti un nome e un’età con valore di default 30. La funzione deve stampare queste informazioni.
Soluzione:
def stampa_info(nome, eta=30):
print(f"Nome: {nome}")
print(f"Età: {eta}")
Verifica:
stampa_info("Maria", 25)
stampa_info("Giovanni")
Nome: Maria Età: 25 Nome: Giovanni Età: 30
Buone Pratiche e Consigli¶
- Nomi Significativi: assegna nomi alle funzioni che descrivano chiaramente il loro scopo.
- Documentazione: utilizza le docstring (
'''Descrizione'''
) per documentare le funzioni. - Modularità: suddividi il codice in funzioni più piccole e riutilizzabili.
- Evita Effetti Collaterali: cerca di mantenere le funzioni pure, evitando di modificare variabili globali all’interno delle funzioni.
- Gestione degli Errori: considera l’aggiunta di controlli sugli argomenti per gestire input non validi.
Conclusione¶
Le funzioni sono uno strumento fondamentale in Python per creare codice organizzato, leggibile e riutilizzabile. Comprendere come definirle e utilizzarle efficacemente è essenziale per sviluppare programmi più complessi e modulari. Abbiamo esplorato come creare funzioni con parametri, utilizzare valori di default, restituire valori e gestire variabili locali e globali.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Functions
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: Functions