Python Intermedio

✨ Livello
🕗 Durata
💻 Pratica
Intermedio
6-8 mesi
Più di 300 esercizi di programmazione
Benvenuto al corso di livello intermedio su Python! In questo corso imparerai molte funzionalità avanzate del linguaggio e alcune best practice per utilizzarle. Questo corso è progettato per persone che hanno già una certa esperienza con Python e desiderano migliorare le proprie conoscenze e apprendere argomenti più avanzati.
notion image
Alla fine di questo corso, saprai come utilizzare le classi e avrai familiarità con l'ereditarietà. Copriremo le best practice per scrivere codice per progetti di grandi dimensioni e utilizzeremo typing, che aiuta nell'analisi statica del codice per rilevare errori. Lavorerai con i decorator e creerai i tuoi decorator di utilità che ridurranno significativamente le dimensioni del codice. Discuteremo di iteratori e iterabili insieme alla libreria standard itertools. glob e pathlib saranno utilizzati per lavorare con il filesystem. Soprattutto, impareremo come utilizzare async / await per ottimizzare il nostro codice quando lavoriamo con grandi I/O, database e richieste di rete.

💻 Imparare facendo

In questo corso, impari facendo! Ogni concetto ha diversi esercizi interattivi che risolverai per passare al successivo. Crediamo che l'apprendimento pratico sia il modo migliore per acquisire conoscenze approfondite. Qui avrai molti esercizi stimolanti e allo stesso tempo interessanti per praticare ogni concetto trattato.
Studierai al tuo ritmo. Puoi impegnarti e completare diversi livelli in una settimana, oppure prendertela con calma e concentrarti più a lungo su ogni concetto.
C'è un forum per fare domande e sbloccarti. Puoi porre o rispondere alle domande degli altri sotto ogni esercizio.

🎓 Curriculum

Questo corso si concentra sui concetti fondamentali e su alcune funzionalità avanzate di Python, introducendoli in modo intuitivo. Per rendere il processo più divertente e coinvolgente, i concetti sono organizzati in livelli e superare ogni livello significa che hai padroneggiato un nuovo concetto. Questi sono i principali argomenti che tratteremo qui:
Funzioni avanzate
  • Argomenti solo posizionali e solo per parola chiave
  • Ricorsione
  • Passaggio per valore VS passaggio per riferimento (argomenti mutabili)
Espressioni regolari
  • Nozioni di base e applicazioni delle espressioni regolari
  • Ricerca e corrispondenza
Classi
  • Definire le classi
  • Impostare e accedere agli attributi
  • Il costruttore __init__
  • Definire metodi all'interno delle classi
  • Metodi magici
  • Variabili pubbliche e private
Ereditarietà
  • Ereditare da una classe base
  • Modificare la funzionalità sovrascrivendo un metodo
  • Estendere la funzionalità con l'aiuto di super()
  • Ereditare da diverse classi base
Incapsulamento
  • Variabili private
  • Variabili protette
  • Come Python gestisce effettivamente le variabili private e protette
Eccezioni
  • raise e except
  • Gerarchia delle eccezioni
  • Creare eccezioni personalizzate
Moduli
  • Lavorare con le librerie
  • Moduli nel filesystem
  • Inizializzazione del modulo
  • Importare variabili, funzioni e classi
Filesystem
  • glob per lavorare con collezioni di file
  • pathlib per lavorare con file specifici
  • Rimuovere file
  • Creare/eliminare ricorsivamente intere directory
Classi avanzate
  • Variabili di classe VS variabili di istanza
  • Decoratori integrati (@dataclass, @property, @staticmethod, ecc.)
  • Classi astratte (modulo ABC)
Decorator
  • Decorator per funzioni
  • Decorator per classi
  • Creare decorator personalizzati
Typing
  • Typing per tipi integrati (int, list, dict, ecc.)
  • Typing per classi personalizzate
  • Typing all'interno di una classe
  • Analisi statica - cosa possiamo ottenere e quali sono le limitazioni
Iteratori e iterabili
  • Iteratori
  • Generatori
  • Iterabili
  • itertools - cycle(), repeat(), chain(), ecc.
  • Creare un generatore personalizzato
  • Creare un iterabile personalizzato
Gestori di contesto
  • Implementare un gestore di contesto personalizzato
  • Utilizzare la sintassi with
  • Gestori di contesto come decorator
Multithreading e Multiprocessing
  • Il pacchetto threading
  • Creare una classe thread personalizzata
  • Il pacchetto multiprocessing
  • Elaborazione in pool
  • Condividere dati tra thread e processi
asyncio
  • Sintassi async e await per le funzioni
  • Lavorare con i file
  • Lavorare con richieste di rete
  • Query tramite SQLAlchemy
  • asyncio vs thread e processi
Conclusione e progetti
  • Diversi progetti supervisionati riassumeranno tutto il materiale.
  • Questo includerà molte ricerche su internet e studio autonomo.
  • Automizzerai alcune attività e imparerai alcune librerie utili

🚀 Benvenuto

Imparare è per l'80% lavoro individuale! Completare questo corso sarà una tua conquista e siamo qui per supportarti in questo percorso. Puoi utilizzare la sezione in fondo a ogni esercizio per fare domande o aiutare gli altri.