Python Core è il primo corso corso della collana DEEP SIGNAL. Costruisce una conoscenza rigorosa del linguaggio necessaria per affrontare i corsi successivi di AI Systems Engineering.
Il corso segue direttamente il Python Language Reference e il Python Data Model. I costrutti non vengono presentati come ricette da applicare, ma attraverso i meccanismi che ne spiegano il comportamento a runtime.
Il percorso conduce progressivamente dal modello di esecuzione del linguaggio fino a typing, Pydantic v2 e programmazione concorrente e asincrona con asyncio.
Python Core non prepara a usare un framework. Prepara a comprendere e costruire sistemi.
Fino al 15 ottobre 2026 acquista il corso a 69€ invece di 129€.
PARTE I — IL LINGUAGGIO PYTHON
SEZIONE 0 — BENVENUTO A BORDO
0.1 Benvenuto a bordo
0.2 Programma e codice sorgente
0.3 L’interprete Python
0.4 Installare Python
0.5 Installare VS Code
0.6 Il terminale
0.7 uv — package & project manager
0.8 Creare un progetto con uv
0.9 Anatomia del progetto
0.10 Il REPL
0.11 Eseguire un file Python
0.12 Il primo output
0.13 I commenti
0.14 Righe fisiche e righe logiche
MISSIONE 0 — Postazione operativa
SEZIONE 1 — OGGETTI, IDENTITÀ E VALORE
1.1 Tutto è un oggetto
1.2 Funzioni e operatori
1.3 L’identità di un oggetto
1.4 Il tipo di un oggetto
1.5 Il valore di un oggetto
1.6 Oggetti mutabili e immutabili
1.7 Identità e uguaglianza
1.8 None — l’oggetto dell’assenza
MISSIONE 1 — Ispezione degli oggetti
SEZIONE 2 — NOMI E BINDING
2.1 Il nome — un riferimento a un oggetto
2.2 Formare un nome valido
2.3 L’assegnazione come binding
2.4 Rebinding — riassegnare un nome
2.5 Aliasing
2.6 del — sciogliere un binding
MISSIONE 2 — Nomi e riferimenti
SEZIONE 3 — LITERAL E TIPI SCALARI
3.1 Il literal
3.2 Gli interi — int
3.3 I numeri in virgola mobile — float
3.4 I booleani — bool
3.5 Le stringhe — str
3.6 I byte — bytes
3.7 Conversioni esplicite tra tipi
3.8 Tipi scalari e immutabilità
MISSIONE 3 — Telemetria scalare
SEZIONE 4 — ESPRESSIONI
4.1 L’espressione
4.2 Attributo
4.3 Gli operatori aritmetici
4.4 La precedenza degli operatori
4.5 Gli operatori di confronto
4.6 Gli operatori booleani
4.7 La valutazione short-circuit
4.8 Truthiness
4.9 Le f-string — incorporare espressioni nel testo
MISSIONE 4 — Valutazione
SEZIONE 5 — STRUTTURE DATI
5.1 La lista — list
5.2 L’indicizzazione
5.3 Lo slicing
5.4 Il metodo
5.5 Mutare una lista
5.6 Aliasing e oggetti mutabili
5.7 La tupla
5.8 L’unpacking di una sequenza
5.9 * nell’unpacking
5.10 Il dizionario
5.11 Accedere a un dizionario
5.12 Mutare un dizionario
5.13 ** — unpacking di dizionari
5.14 Gli operatori di appartenenza
5.15 L’insieme — set
MISSIONE 5 — Registro strutturato
SEZIONE 6 — IL PROTOCOLLO DI ITERAZIONE
6.1 Attraversare una collezione — l’iterabile e l’iteratore, due ruoli distinti
6.2 iter — ottenere un iteratore da un iterabile
6.3 next — chiedere l’elemento successivo
6.4 StopIteration — il segnale di fine sequenza
6.5 L’iteratore si consuma una volta sola — ed è a sua volta un iterabile
6.6 La valutazione lazy — produrre soltanto ciò che viene richiesto
MISSIONE 6 — Attraversamento manuale
SEZIONE 7 — STATEMENT E CONTROLLO DEL FLUSSO
7.1 Programmazione strutturata
7.2 Lo statement
7.3 Lo statement composto
7.4 if / elif / else
7.5 L’espressione condizionale
7.6 while
7.7 for
7.8 range
7.9 break e continue
7.10 L’assegnazione aumentata
7.11 L’espressione di assegnazione
7.12 match — la selezione strutturale
MISSIONE 7 — Diagnostica ambientale
SEZIONE 8 — FUNZIONI
8.1 Le tre dimensioni di una funzione
8.2 def — definire una funzione
8.3 Parametri e argomenti
8.4 Lo statement return
8.5 Argomenti posizionali e per parola chiave
8.6 Valori di default
8.7 *args e **kwargs
8.8 Unpacking degli argomenti nelle chiamate
8.9 La funzione è un oggetto
8.10 lambda
MISSIONE 8 — Analisi della telemetria
SEZIONE 9 — IL MODELLO DI ESECUZIONE: BINDING, SCOPE E CLOSURE
9.1 Code block e frame di esecuzione
9.2 Scope locale e scope globale
9.3 La funzione annidata e lo scope enclosing
9.4 La regola LEGB
9.5 global e nonlocal
9.6 La closure
9.7 Le comprehension
9.8 La comprehension ha un proprio scope
MISSIONE 9 — Sorveglianza del Core
SEZIONE 10 — GENERATORI
10.1 La funzione generatrice
10.2 L’oggetto generatore
10.3 Sospensione e ripresa
10.4 La generator expression
10.5 yield from
MISSIONE 10 — Flusso telemetrico a richiesta
SEZIONE 11 — IL SISTEMA DI IMPORT
11.1 Il modulo
11.2 Importare un modulo
11.3 Importare un nome dal modulo
11.4 Il package
11.5 __name__ e __main__
MISSIONE 11 — Il sottosistema dei materiali
SEZIONE 12 — CLASSI E ISTANZE
12.1 La classe
12.2 L’istanza
12.3 I data attribute di istanza
12.4 Gli attributi di classe
12.5 I metodi di istanza
12.6 Il bound method
12.7 Il metodo __init__
12.8 L’ereditarietà
12.9 Override e super()
MISSIONE 12 — La consegna
SEZIONE 13 — I METODI SPECIALI
13.1 Il metodo speciale
13.2 __repr__ e __str__
13.3 __eq__
13.4 __hash__
13.5 __len__ e __bool__
13.6 __getitem__
13.7 __contains__
13.8 __iter__ e __next__
MISSIONE 13 — Il kit di riparazione
SEZIONE 14 — ECCEZIONI
14.1 L’eccezione
14.2 raise
14.3 try / except
14.4 Cattura per classi derivate
14.5 finally
14.6 Definire una propria eccezione
14.7 Propagare e concatenare
14.8 StopIteration, rivisto
MISSIONE 14 — Conservare la causa
SEZIONE 15 — CONTEXT MANAGER, DECORATORI E CALLABLE OBJECT
15.1 Il rilascio della risorsa
15.2 Lo statement with
15.3 I metodi speciali __enter__ e __exit__
15.4 Il ritorno di __exit__
15.5 Context manager multipli
15.6 Il decoratore
15.7 Il wrapper
15.8 Gli attributi speciali __name__ e __doc__
15.9 Il metodo speciale __call__
MISSIONE 15 — Il lotto temporaneo
SEZIONE 16 — LE ANNOTAZIONI
16.1 L’annotazione
16.2 La firma annotata
16.3 I tipi generici
16.4 L’unione
16.5 Lo statement type
16.6 La valutazione differita
16.7 __annotations__
MISSIONE 16 — Il contratto annotato
PARTE II — PYDANTIC V2
SEZIONE 17 — MODELLI E VALIDAZIONE CON PYDANTIC V2
17.1 Il confine dei dati
17.2 BaseModel
17.3 La validazione del modello
17.4 Conversione e modalità strict
17.5 ValidationError
17.6 Campi obbligatori e valori di default
17.7 Field
17.8 Modelli annidati
17.9 Unioni discriminate
17.10 Validare un campo con AfterValidator
17.11 Il decoratore model_validator
17.12 model_validate e model_dump
17.13 JSON e JSON Schema
17.14 La classe TypeAdapter
MISSIONE 17 — Il piano di coltivazione
PARTE III — ASYNCIO
SEZIONE 18 — IL MODELLO ASINCRONO
18.1 asyncio e ANSOC
18.2 Processo e thread
18.3 Concorrenza e parallelismo
18.4 Scheduler e multitasking
18.5 CPU-bound e I/O-bound
18.6 Il multitasking cooperativo
18.7 I/O bloccante e non bloccante
18.8 Quando una risorsa diventa pronta
18.9 L’event loop
18.10 La coroutine
18.11 async def e l’oggetto coroutine
18.12 Awaitable e __await__()
18.13 La parola chiave await
18.14 asyncio.run()
MISSIONE 18 — Una rilevazione da completare
SEZIONE 19 — TASK E CONCORRENZA STRUTTURATA
19.1 Dalla coroutine al task
19.2 Concorrenza strutturata e TaskGroup
19.3 ExceptionGroup ed except*
19.4 La cancellazione cooperativa
19.5 CancelledError e finally
19.6 asyncio.timeout
MISSIONE 19 — Ping alla sonda
SEZIONE 20 — PROTOCOLLI E STRUMENTI ASINCRONI
20.1 Lo statement async with
20.2 Lo statement async for
20.3 Il codice bloccante e asyncio.to_thread
20.4 Il ciclo di vita di un componente asincrono
20.5 Errori tipici nel codice asincrono
MISSIONE 20 — Trova il problema
CONCLUSIONE
Hai completato Python Core