CHI HA PAURA DELL’INTELLIGENZA ARTIFICIALE?

Scrivere codice non significa solo "far funzionare le cose", ma farlo in modo che anche un altro essere umano (o tu stesso tra sei mesi) possa capirle. Le funzioni e i moduli sono gli strumenti fondamentali per passare da semplici script a software professionali, ordinati e scalabili.
Immagina una funzione come una scatola nera: tu le fornisci degli ingredienti (input/parametri), lei esegue una ricetta specifica e ti restituisce il piatto pronto (output/valore di ritorno).
Una funzione ben scritta segue il principio SRP (Single Responsibility Principle): deve fare una sola cosa e farla bene.
# Definizione di una funzione con parametri e ritornodef calcola_area_rettangolo(base, altezza): """Calcola l'area di un rettangolo dati base e altezza.""" area = base * altezza return area
# Invocazione della funzionerisultato = calcola_area_rettangolo(10, 5)print(f"L'area è: {risultato}") # Output: 50Perché non scrivere tutto in un unico, lungo blocco di codice? La scomposizione (o decomposizione) offre vantaggi cruciali:
DRY (Don't Repeat Yourself): Se devi correggere un errore, lo fai in un unico punto (la funzione) e la modifica si riflette ovunque nel programma.
Astrazione: Non hai bisogno di sapere come funziona internamente la funzione print() o math.sqrt(), ti basta sapere cosa fa.
Testabilità: È molto più facile verificare se una piccola funzione da 5 righe funziona correttamente rispetto a un intero programma da 500.
Collaborazione: In un team, uno sviluppatore può occuparsi della funzione di "Log-in", mentre un altro scrive quella per il "Carrello acquisti".
In Python, un modulo è semplicemente un file .py che contiene funzioni e variabili. Una libreria è una collezione di questi moduli. Esistono librerie per ogni necessità:
| Libreria | Scopo | Esempio di utilizzo |
| Math | Operazioni matematiche avanzate | math.sin(x), math.pi |
| Random | Generazione di numeri casuali | random.randint(1, 10) |
| Datetime | Gestione di date e orari | datetime.now() |
| Pandas | Analisi di grandi moli di dati | Gestione di tabelle Excel/CSV |
Esempio pratico: Invece di scrivere l'algoritmo per calcolare la radice quadrata a mano, importiamo l'intelligenza collettiva della community:
Pythonimport mathprint(math.isqrt(16)) # Output: 4
Sfida: Immagina di dover gestire una classe. Invece di un unico script caotico, progetta la struttura di tre funzioni separate:
leggi_voti(): Chiede all'utente di inserire i numeri.
elabora_media(lista): Somma i voti e divide per il numero di elementi.
genera_pagella(nome, media): Stampa un messaggio formattato con il giudizio finale.
In Scratch, usa la sezione "I miei blocchi":
Crea un blocco chiamato DisegnaQuadrato che accetti un parametro lato.
Usa l'estensione "Penna" per far muovere lo sprite.
Obiettivo: Comprendere che richiamando il blocco tre volte con valori diversi, lo sprite disegnerà quadrati di dimensioni differenti senza riscrivere i comandi di movimento.
Scrivi una funzione valida_password(pwd) che:
Controlli se la lunghezza è superiore a 8 caratteri.
Restituisca True se valida, False altrimenti.
Bonus: Importa il modulo re per controllare se contiene anche numeri.
Al termine di questa unità, non sarai solo in grado di scrivere funzioni, ma avrai acquisito la mentalità dell'architetto del software: saper guardare un problema enorme e vederlo come un insieme ordinato di piccoli pezzi logici che collaborano tra loro.
Commenti
Posta un commento