Skip to content

Funzioni

Basato su: Manuale Python per principianti (freeCodeCamp)


  • ✅ Definire e chiamare funzioni
  • ✅ Usare parametri, argomenti e valori di default
  • ✅ Capire lo scope delle variabili (LEGB)
  • ✅ Scrivere funzioni lambda
  • ✅ Comprendere la ricorsione

  • 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”)”
  1. Definizione: def nome_funzione(parametri):
  2. Chiamata: nome_funzione(argomenti)
  3. return: restituire un valore (None se omesso)
  4. Parametri opzionali: def f(a, b=5):
  5. Argomenti posizionali e keyword
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=0
  • Manuale → sezione Funzioni in Python

Contenuti (dal manuale, sezione “Visibilità delle variabili in Python”)

Section titled “Contenuti (dal manuale, sezione “Visibilità delle variabili in Python”)”
  1. Regola LEGB: Local, Enclosing, Global, Built-in
  2. Variabili locali vs globali
  3. global e nonlocal
x = 10 # globale
def funzione():
x = 5 # locale
print(f"Locale: {x}")
funzione()
print(f"Globale: {x}")
# Per modificare una globale dentro una funzione
def modifica():
global x
x = 20
  • Manuale → sezione Visibilità delle variabili in Python

Contenuti (dal manuale, sezione “Funzioni lambda in Python”)

Section titled “Contenuti (dal manuale, sezione “Funzioni lambda in Python”)”
  1. Sintassi: lambda parametri: espressione
  2. Funzioni anonime monouso
  3. Uso con sorted(), map(), filter()
# Lambda come funzione
quadrato = lambda x: x**2
print(quadrato(5))
# sorted con lambda
student = [("Anna", 25), ("Marco", 22), ("Luca", 30)]
ordinati = sorted(student, key=lambda s: s[1])
print(ordinati)
  • Manuale → sezione Funzioni lambda in Python

Contenuti (dal manuale, sezione “Ricorsione in Python”)

Section titled “Contenuti (dal manuale, sezione “Ricorsione in Python”)”
  1. Funzione che chiama sé stessa
  2. Serve un caso base (terminazione)
  3. Stack di chiamate e limite di ricorsione
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)) # 55
  • Manuale → sezione Ricorsione in Python

"""
ESERCIZIO 1: Calcolatrice
Crea funzioni: somma, sottrai, moltiplica, dividi
Chiedi due numeri e un operatore all'utente,
chiama la funzione corrispondente.
"""
"""
ESERCIZIO 2: Lambda sort
Data una lista di persone [(nome, eta)],
ordinale prima per età poi per nome usando lambda.
"""
"""
ESERCIZIO 3: Ricorsione
Scrivi una funzione ricorsiva conto_alla_rovescia(n)
che stampa i numeri da n a 1 e poi "Via!"
"""

DomandaRisposta
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