Raccolta degli esercizi svolti durante il modulo Programmazione 2 del percorso formativo Web Developer AI presso la Steve Jobs Academy (Catania).
Il repository documenta il percorso di apprendimento di Python, dalle strutture di controllo di base fino alla programmazione a oggetti e ai metodi speciali. Non è un progetto unico, ma un archivio organizzato in ordine di difficoltà crescente.
I progetti finali del modulo hanno repository dedicati: book-manager, pokemon-api-client, creature-manager e loan-predictor-webapp-ml.
| Cartella | Contenuto |
|---|---|
01-basi/ |
23 esercizi su condizioni, cicli e liste |
02-funzioni/ |
30 esercizi su funzioni, lambda, comprehension e dizionari |
03-oop/ |
8 esercizi su classi e metodi speciali |
Esercizi introduttivi su strutture di controllo e acquisizione di dati da tastiera.
Argomenti coperti: condizioni if/elif/else, cicli for e while, break e continue, operatore ternario, confronti tra stringhe e tra tipi diversi, prime operazioni sulle liste.
Alcuni esempi: verifica di numero positivo o negativo, classificazione per fascia d'età, controllo delle credenziali di accesso, filtro di numeri, interruzione di un ciclo al primo multiplo di 7.
Il blocco più esteso del percorso. Introduce la programmazione funzionale e le strutture dati di Python.
Funzioni — definizione, parametri posizionali e keyword, argomenti variabili con *args e **kwargs, valori di ritorno, ricorsione.
Programmazione funzionale — espressioni lambda, map(), filter(), pipeline che concatenano più trasformazioni.
List comprehension — costruzione di liste in una riga, con e senza condizione.
Dizionari — accesso sicuro con get(), iterazione su chiavi e valori.
Scope — variabili globali e locali, shadowing.
Prime classi — definizione, costruttore, metodi, creazione di più oggetti.
Approfondimento sui metodi speciali di Python, quelli con il doppio underscore.
| Esercizio | Argomento |
|---|---|
student_constructor.py |
Il costruttore __init__ |
student_dunder_str.py |
__str__, la rappresentazione testuale di un oggetto |
student_eq_method.py |
__eq__, ridefinire il confronto tra oggetti |
student_len_method.py |
__len__, dare una lunghezza a un oggetto |
student_add_method.py |
__add__, ridefinire l'operatore + |
vehicle_class_attribute.py |
Attributi di classe e attributi di istanza |
vehicle_attribute_shadowing.py |
Cosa succede quando un attributo di istanza copre uno di classe |
introspection_dir_dict.py |
Introspezione con dir() e __dict__ |
I metodi speciali permettono a una classe personalizzata di rispondere alle operazioni native del linguaggio: print(), ==, len(), +. È il modo in cui Python integra gli oggetti definiti dall'utente con la propria sintassi.
Ogni cartella contiene due piccoli moduli scritti da me e usati dagli esercizi:
clear_screen.py— pulisce il terminale all'avvio dello scriptcolor_tool.py— esponeForeeStyledicoloramaper stampare a colori
Sono duplicati in tutte e tre le cartelle perché Python cerca i moduli importati nella stessa directory dello script eseguito. In questo modo ogni esercizio è indipendente e si avvia senza configurazioni.
Serve Python 3 e la libreria colorama:
pip install -r requirements.txt
Conviene installare le dipendenze in un ambiente virtuale isolato: vedi Ambienti virtuali in Python.
Poi si lancia il singolo esercizio:
python 02-funzioni/student_registry.py
Nota sulla portabilità:
clear_screen.pyusaclssu Windows eclearsugli altri sistemi, quindi funziona ovunque.
- Python 3
- colorama per l'output colorato nel terminale
- Visual Studio Code come ambiente di sviluppo
Riccardo Mazza — @Richard-WebDev Studente Web Developer AI, Steve Jobs Academy