Funzioni
Funzioni (Parte 1)
Section titled “Funzioni (Parte 1)”Basato su: Manuale Python per principianti (freeCodeCamp)
🎯 Obiettivi del Modulo
Section titled “🎯 Obiettivi del Modulo”- ✅ Definire e chiamare funzioni
- ✅ Usare parametri, argomenti e valori di default
- ✅ Capire lo scope delle variabili (LEGB)
- ✅ Scrivere funzioni lambda
- ✅ Comprendere la ricorsione
📅 Lezione 1 — Funzioni in Python
Section titled “📅 Lezione 1 — Funzioni in Python”Obiettivi specifici
Section titled “Obiettivi specifici”- Definire funzioni con def
- Usare parametri e valori di default
- Restituire valori con return
Contenuti (dal manuale, sezione “Funzioni in Python”)
Section titled “Contenuti (dal manuale, sezione “Funzioni in Python”)”- Definizione:
def nome_funzione(parametri): - Chiamata:
nome_funzione(argomenti) return: restituire un valore (None se omesso)- Parametri opzionali:
def f(a, b=5): - Argomenti posizionali e keyword
Attività (esercizi)
Section titled “Attività (esercizi)”def saluta(nome): return f"Ciao {nome}!"
def somma(a, b=0): return a + b
print(saluta("Mario"))print(somma(5, 3))print(somma(5)) # usa b=0Riferimenti
Section titled “Riferimenti”- Manuale → sezione Funzioni in Python
📅 Lezione 2 — Scope delle variabili
Section titled “📅 Lezione 2 — Scope delle variabili”Contenuti (dal manuale, sezione “Visibilità delle variabili in Python”)
Section titled “Contenuti (dal manuale, sezione “Visibilità delle variabili in Python”)”- Regola LEGB: Local, Enclosing, Global, Built-in
- Variabili locali vs globali
globalenonlocal
Attività (esercizi)
Section titled “Attività (esercizi)”x = 10 # globale
def funzione(): x = 5 # locale print(f"Locale: {x}")
funzione()print(f"Globale: {x}")
# Per modificare una globale dentro una funzionedef modifica(): global x x = 20Riferimenti
Section titled “Riferimenti”- Manuale → sezione Visibilità delle variabili in Python
📅 Lezione 3 — Funzioni lambda
Section titled “📅 Lezione 3 — Funzioni lambda”Contenuti (dal manuale, sezione “Funzioni lambda in Python”)
Section titled “Contenuti (dal manuale, sezione “Funzioni lambda in Python”)”- Sintassi:
lambda parametri: espressione - Funzioni anonime monouso
- Uso con
sorted(),map(),filter()
Attività (esercizi)
Section titled “Attività (esercizi)”# Lambda come funzionequadrato = lambda x: x**2print(quadrato(5))
# sorted con lambdastudent = [("Anna", 25), ("Marco", 22), ("Luca", 30)]ordinati = sorted(student, key=lambda s: s[1])print(ordinati)Riferimenti
Section titled “Riferimenti”- Manuale → sezione Funzioni lambda in Python
📅 Lezione 4 — Ricorsione
Section titled “📅 Lezione 4 — Ricorsione”Contenuti (dal manuale, sezione “Ricorsione in Python”)
Section titled “Contenuti (dal manuale, sezione “Ricorsione in Python”)”- Funzione che chiama sé stessa
- Serve un caso base (terminazione)
- Stack di chiamate e limite di ricorsione
Attività (esercizi)
Section titled “Attività (esercizi)”def fattoriale(n): if n <= 1: # caso base return 1 return n * fattoriale(n - 1)
print(fattoriale(5)) # 120
def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)) # 55Riferimenti
Section titled “Riferimenti”- Manuale → sezione Ricorsione in Python
🏠 Esercizi per Casa
Section titled “🏠 Esercizi per Casa”"""ESERCIZIO 1: CalcolatriceCrea funzioni: somma, sottrai, moltiplica, dividiChiedi due numeri e un operatore all'utente,chiama la funzione corrispondente."""
"""ESERCIZIO 2: Lambda sortData una lista di persone [(nome, eta)],ordinale prima per età poi per nome usando lambda."""
"""ESERCIZIO 3: RicorsioneScrivi una funzione ricorsiva conto_alla_rovescia(n)che stampa i numeri da n a 1 e poi "Via!""""📊 Verifica Apprendimento
Section titled “📊 Verifica Apprendimento”| Domanda | Risposta |
|---|---|
| Come si definisce una funzione? | def nome(parametri): |
| Cosa restituisce una funzione senza return? | None |
| Cosa significa LEGB? | Local, Enclosing, Global, Built-in |
| Sintassi lambda? | lambda x: espressione |
| Cosa serve il caso base nella ricorsione? | Terminare la ricorsione |