Guida completa a Python
📘 Capitolo 6 – Funzioni in Python
1. Cosa sono le funzioni?
Le funzioni sono blocchi di codice che puoi dare un nome e richiamare quando vuoi, anche più volte.
def saluta():
print("Ciao! Benvenuto in Python.")
saluta() # Chiama la funzione
2. Parametri e Argomenti
Puoi passare informazioni alla funzione tramite parametri.
def saluta_persona(nome):
print(f"Ciao {nome}!")
saluta_persona("Luca")
Output:
Ciao Luca!
3. Valori di ritorno (return
)
Le funzioni possono restituire un valore con return
.
def somma(a, b):
return a + b
risultato = somma(3, 5)
print("Risultato:", risultato) # ➝ 8
4. Parametri opzionali e predefiniti
def saluta(nome="amico"):
print(f"Ciao {nome}!")
saluta() # ➝ Ciao amico!
saluta("Giulia") # ➝ Ciao Giulia!
5. Scope: variabili locali vs globali
def prova():
x = 10 # locale
print(x)
x = 5 # globale
prova()
print(x) # ➝ 5, la x dentro `prova()` è separata
6. Funzioni con più valori di ritorno
def info_persona():
return "Luca", 30
nome, eta = info_persona()
7. Funzioni anonime: lambda
Funzioni brevi in una riga, spesso usate come argomenti.
quadrato = lambda x: x * x
print(quadrato(4)) # ➝ 16
Esempio pratico: modularizzare un’app
Prendiamo il menu di gestione nomi di prima e usiamo funzioni per ogni azione:
def aggiungi_nome(nomi):
nome = input("Nome da aggiungere: ").strip().capitalize()
if nome not in nomi:
nomi.append(nome)
print(f"✅ '{nome}' aggiunto!")
else:
print(f"⚠️ '{nome}' è già presente.")
def rimuovi_nome(nomi):
nome = input("Nome da rimuovere: ").strip().capitalize()
if nome in nomi:
nomi.remove(nome)
print(f"🗑️ '{nome}' rimosso.")
else:
print(f"❌ '{nome}' non trovato.")
# Altre funzioni: cerca_nome(), mostra_nomi(), menu(), ecc.
In questo modo il codice è:
- Più chiaro
- Più riutilizzabile
- Più facile da manutenere
🧪 Esercizio pratico
Creare una funzione che:
- Prende un numero come parametro
- Ritorna
True
se è pari - Ritorna
False
se è dispari
Soluzione in Python
def verifica_pari(n):
return n % 2 == 0
# Esempi di utilizzo
print(verifica_pari(4)) # ➝ True
print(verifica_pari(7)) # ➝ False
Spiegazione:
n % 2 == 0
➝ restituisceTrue
se il resto della divisione per 2 è 0, quindi il numero è pari.- La funzione restituisce direttamente il risultato della condizione logica!
Versione con interazione utente
def verifica_pari(n):
return n % 2 == 0
numero = int(input("Inserisci un numero: "))
if verifica_pari(numero):
print("✅ È un numero pari.")
else:
print("🔹 È un numero dispari.")