01 · Basi
- variabili
- tipi
- f-string
- input/output
Fine del Corso Python
Complimenti: hai attraversato i 9 moduli del Corso Python — dalle prime variabili e if fino a @dataclass, contextmanager e @decorator. Qui sotto la mappa di tutto quello che padroneggi e una sfida finale in tre tappe.
Immagina un piccolo strumento che analizza log testuali, aggrega le occorrenze e gestisce gli errori in modo robusto. Costruisci i tre pezzi: il parser, l'aggregatore e il decoratore di retry. Ogni tappa combina concetti dei moduli che hai studiato — nessuna lezione nuova.
Scrivi parole(testo): ritorna una lista di tutte le parole in minuscolo (sequenze di lettere/cifre). Modulo 8 (re) + Modulo 4 (metodi stringa).
Definisci parole(testo: str) -> list[str] che ritorna tutte le "parole" del testo (re.findall di \w+) tutte in lowercase. Esempio: parole("Ciao Mondo, ciao!") -> ["ciao", "mondo", "ciao"].
re.findall(r"\w+", testo) e list comprehension con .lower().
Soluzione disponibile dopo 3 tentativi
Conta quante volte ogni parola appare e ritorna le prime N più frequenti. Modulo 8 (collections) + Modulo 6 (iteratori).
Definisci top_parole(testo: str, n: int) -> list[tuple[str, int]] che usa parole() (riusa la funzione della tappa 1) e Counter per ritornare le n parole più frequenti, dalla più comune in giù.
Counter(parole(testo)).most_common(n) fa tutto il lavoro.
Soluzione disponibile dopo 3 tentativi
Scrivi un decoratore che riprova fino a N volte se la funzione solleva un'eccezione. Modulo 9 (decoratori) + Modulo 2 (try/except).
Definisci retry(tentativi: int) come decoratore parametrizzato. La funzione decorata viene chiamata fino a "tentativi" volte: se solleva un'eccezione, riprova; se tutti i tentativi falliscono, lascia propagare l'ultima eccezione. Usa functools.wraps.
retry(n) ritorna un decoratore. Il decoratore ritorna un wrapper. Il wrapper fa un for n volte: try chiama, except ricorda e prosegue. Se finisce, raise.
Soluzione disponibile dopo 3 tentativi
Una pagina con tutta la sintassi essenziale di Python moderno, pronta da tenere sotto mano mentre programmi.
Il modo migliore per consolidare è pratica libera. Apri un editor (o il Playground Python) e prova a riscrivere a memoria gli esercizi più complessi, oppure cimentati con piccoli script: un analizzatore di log, uno scraper di dati JSON, una piccola CLI con argparse.