Funzioni
Organizza i calcoli ripetitivi della consulente fiscale Sara Conti in funzioni riutilizzabili: IVA, parcelle e analisi del fatturato.
Funzioni in Python
Sara Conti è una consulente fiscale che ogni giorno calcola IVA, genera parcelle e analizza fatturati. Senza funzioni, dovrebbe riscrivere gli stessi calcoli decine di volte. Le funzioni permettono di definire una volta e riutilizzare ovunque — rendendo il codice modulare e leggibile.
Definire una funzione — calcola_iva
La funzione più semplice prende un importo e restituisce l'IVA calcolata. La keyword def introduce la definizione, return restituisce il risultato.
def calcola_iva(importo, aliquota=22):
"""Calcola l'IVA su un importo dato."""
iva = importo * aliquota / 100
return iva
# Uso con aliquota standard
iva_parcella = calcola_iva(1500)
print(f"IVA al 22%: {iva_parcella:.2f} EUR") # 330.00 EUR
# Uso con aliquota ridotta (beni di prima necessità)
iva_ridotta = calcola_iva(1500, aliquota=4)
print(f"IVA al 4%: {iva_ridotta:.2f} EUR") # 60.00 EURParametri predefiniti — genera_parcella
Quando Sara genera una parcella, alcuni dati sono quasi sempre gli stessi. I parametri con valori predefiniti evitano di ripetere le informazioni più comuni.
def genera_parcella(cliente, importo, aliquota_iva=22, valuta="EUR"):
"""Genera il riepilogo di una parcella professionale."""
iva = importo * aliquota_iva / 100
totale = importo + iva
print(f"--- Parcella per {cliente} ---")
print(f"Imponibile: {importo:.2f} {valuta}")
print(f"IVA ({aliquota_iva}%): {iva:.2f} {valuta}")
print(f"Totale: {totale:.2f} {valuta}")
return totale
# Sara genera parcelle con parametri diversi
genera_parcella("Avv. Marco Rossi", 3000)
genera_parcella("Bottega Ferraro", 800, aliquota_iva=10)Più valori di ritorno — analizza_fatturato
Python permette di restituire più valori con le tuple. Utilissimo quando una funzione deve comunicare più risultati, come l'analisi di un trimestre fiscale.
def analizza_fatturato(fatture):
"""Analizza una lista di importi fatture."""
totale = sum(fatture)
media = totale / len(fatture)
massimo = max(fatture)
minimo = min(fatture)
return totale, media, massimo, minimo
# Fatture del trimestre di Sara
fatture_q1 = [1200, 3500, 800, 2200, 1500, 4000]
totale, media, massimo, minimo = analizza_fatturato(fatture_q1)
print(f"Fatturato Q1: {totale:.2f} EUR")
print(f"Media per fattura: {media:.2f} EUR")
print(f"Fattura più alta: {massimo:.2f} EUR")
print(f"Fattura più bassa: {minimo:.2f} EUR")Quando creare una funzione
Una regola pratica: se ti trovi a copiare e incollare lo stesso blocco di codice, è il momento di creare una funzione. Ecco i segnali:
- ●Lo stesso calcolo appare in più punti del programma
- ●Un blocco di codice fa una cosa specifica e autocontenuta
- ●Vuoi poter testare un pezzo di logica in isolamento
- ●Il codice diventa difficile da leggere senza una struttura
Le funzioni ben scritte fanno una cosa sola, hanno un nome descrittivo e accettano parametri per essere flessibili.
Da ricordare
- ●Definisci con
def nome(parametri):e restituisci conreturn - ●I parametri predefiniti evitano ripetizioni:
def f(x, aliquota=22) - ●Python permette di restituire più valori:
return a, b, c - ●Le variabili dentro una funzione sono locali e non visibili all'esterno
- ●Crea una funzione ogni volta che un blocco di codice si ripete o diventa troppo lungo