In questa pagina

Tutorial Python: guide pratiche per i problemi Python di tutti i giorni

Python è un linguaggio generico usato per l’automazione, il lavoro sui dati, i backend web e il calcolo scientifico, e la maggior parte delle persone lo impara risolvendo un problema concreto alla volta. Questa pagina è la mappa delle oltre 1.400 guide pratiche su Python di DelftStack. Le guide sono raggruppate qui sotto in base al lavoro che stai cercando di svolgere — pulire il testo, lavorare con liste e dizionari, gestire file e date, correggere gli errori — e ogni gruppo si apre con le guide selezionate dalla redazione che rispondono alle domande più frequenti dei lettori. Che tu stia scrivendo il tuo primo script o che tu mantenga codice Python ogni giorno e ti serva soltanto una risposta affidabile, parti dal percorso di apprendimento oppure vai dritto al gruppo che corrisponde al tuo problema.

Il percorso di apprendimento Python: configura l’ambiente, padroneggia i dati fondamentali, gestisci le attività di ogni giorno, correggi gli errori, poi passa alle classi e a OpenCV

Il percorso di apprendimento Python

Non devi leggere 1.400 guide in ordine. Un percorso affidabile è configurare prima l’ambiente, poi padroneggiare i tipi di dato che userai ogni giorno — stringhe, liste e dizionari — poi aggiungere file, date e numeri, e solo alla fine dedicare tempo alla gestione degli errori e al codice orientato agli oggetti. Python premia questo ordine perché ogni fase si costruisce sulla precedente: la gestione del testo rende facile il lavoro sui file, il lavoro sui file rende facile il lavoro sui dati, e i messaggi di errore smettono di essere misteriosi quando sai che cosa il codice stava cercando di fare. Considera le fasi qui sotto come una lista di controllo; quando una ti sembra facile, passa alla successiva.

  1. Configura l’ambiente. Installa Python e verifica che cosa stai eseguendo con il controllo della versione di Anaconda e Python; la confusione tra versioni è la causa di molte segnalazioni di “installazione rotta”.
  2. Dati fondamentali. Impara a convertire una stringa in una lista e a ottenere la prima chiave di un dizionario — questi tipi compaiono in quasi ogni programma.
  3. Attività quotidiane. Eliminare una riga da un file, formattare un datetime, calcolare una media mobile: i gruppi qui sotto coprono questo lavoro di ogni giorno.
  4. Correggi gli errori. Quando il codice si rompe, ConnectionRefusedError e le altre guide sugli errori mostrano come trovare la causa invece di procedere per tentativi.
  5. Vai oltre. Ispeziona gli attributi degli oggetti e ritaglia le immagini con OpenCV; i gruppi sulle classi e su OpenCV fanno da ponte verso progetti più grandi.

Dopo il percorso, usa questa pagina come riferimento: ogni gruppo qui sotto è autonomo, e l’indice alfabetico completo sotto ogni sezione elenca tutte le oltre 1.400 guide, compresa la lunga coda di domande specifiche che gli elenchi selezionati non possono coprire.

Stringhe e testo

Quasi ogni script Python tocca del testo: input dell’utente, contenuti di file, pagine web estratte, esportazioni CSV. Questo gruppo copre le quattro cose che farai con quel testo — convertirlo, pulirlo, confrontarlo e, occasionalmente, dargli uno stile. Leggi per prima la guida sulla conversione: trasformare una stringa in una lista di parole o valori è l’operazione di accesso a tutto il resto. Vengono poi le guide sulla pulizia — i caratteri invisibili causano bug esasperanti. Finisci con il confronto, dove vive la logica di convalida, e tieni la guida sullo stile per il giorno in cui costruirai uno strumento da riga di comando.

Approfondisci: il sotto-hub Python String organizza le 115 guide sulle stringhe per attività — convertire, pulire, cercare e formattare — con una mappa completa dei metodi delle stringhe.

Liste, dizionari e collezioni

Liste e dizionari sono i contenitori predefiniti di Python, e la padronanza nel loro uso separa gli script che si limitano a funzionare da quelli che sono anche brevi e chiari. Inizia dalla guida sul dizionario: chiarisce che cosa significa “primo” per una mappatura — l’ordine di inserimento — e come leggere direttamente una chiave. L’altra base è la guida sullo slicing. Dopo viene l’igiene dei dati: le liste numeriche reali arrivano con valori NaN, e gli estremi e la dispersione vanno individuati e misurati prima che qualsiasi analisi costruita sopra di essi abbia senso.

Errori ed eccezioni

Un messaggio di errore è un rapporto strutturato: il nome dell’eccezione ti dice quale presupposto è fallito, il valore ti dice dove. Leggi questo gruppo in quest’ordine. KeyError significa che ai tuoi dati mancava ciò che il codice si aspettava; l’IndexError scalare significa che un valore NumPy aveva meno dimensioni del previsto. Gli errori di connessione e di autorizzazione sono di un altro tipo — la logica del codice è corretta, ma l’ambiente ha rifiutato l’operazione, quindi la soluzione sta nel controllare il server, la porta o i permessi dei file.

Numeri, matematica e operatori

Questo piccolo gruppo attira una domanda sproporzionata in diverse lingue, perché ogni guida risponde a una domanda scomoda da formulare in una casella di ricerca. La guida su XOR è quella concettuale: la logica bit a bit sta alla base di flag, checksum e di un famoso trucco di scambio. La guida sulla media mobile è quella pratica — per la maggior parte dei lettori è il primo strumento per le serie temporali. Le ultime due guide chiariscono una terminologia che sta dietro a bug reali: il numero di Eulero ha tre diverse funzioni “giuste”, e troncare un float non significa arrotondarlo.

  • XOR in Python — Usa ^ per lo XOR bit a bit e booleano, leggi la tabella di verità e scopri il trucco dello scambio di variabili.
  • Calcola una media mobile in Python — Attenua una serie NumPy con una media mobile ricavata da convolve o cumsum, oppure con pandas e Bottleneck.
  • Il numero di Eulero in Python — Ottieni la costante come math.e; elevala con math.exp() per gli scalari o numpy.exp() per gli array, più expm1() vicino allo zero.
  • Tronca un float in Python — Taglia un float a un numero stabilito di decimali, e scopri in che cosa round() differisce dalla vera troncatura.

Ambiente e configurazione

I problemi di ambiente bloccano tutto il resto, quindi questo gruppo si trova all’ingresso della raccolta anche se nulla di tutto ciò è “programmazione”. Percorrilo nell’ordine in cui incontrerai i problemi. Il primo giorno, verifica quale Python e quale conda hai — la guida sul controllo delle versioni esiste perché sono due numeri diversi, costantemente confusi. Quando un progetto richiede una release esatta di un pacchetto, fissala con pip; pip installa pacchetti, non l’interprete. Le guide sulla disinstallazione servono per ricominciare da capo.

Date e ora

Il codice con date e orari sembra banale finché non deve essere formattato per un altro sistema, ordinato in modo affidabile o confrontato tra fusi orari. Queste guide coprono quasi tutto il lavoro quotidiano con i datetime. La formattazione viene prima: la guida sui millisecondi è il riferimento dietro la ricerca python datetime to string, e mostra perché la scorciatoia ovvia dello slicing corrompe i valori. L’ordinamento è una sola funzione, una volta che sai che sorted() accetta oggetti datetime. La sottrazione nasconde la sottigliezza — il risultato è un timedelta, e mescolare valori naive e consapevoli del fuso solleva un errore che è meglio incontrare qui.

File, formati di dati e sistema

Il lavoro sui file in Python segue un unico schema — leggere, trasformare, scrivere di nuovo — e la guida sull’eliminazione di una riga ne è l’esempio canonico, compresa la variante sicura per la memoria per i file troppo grandi da contenere in una volta sola. L’altra metà riguarda dove vive il codice: perché una cartella di moduli ha bisogno di una struttura di pacchetto, e come funziona il caricamento dinamico quando i nomi dei moduli non sono noti. La guida sul wheel chiude il cerchio — un file .whl è il modo in cui i pacchetti raggiungono macchine senza un indice, una situazione comune sui server bloccati.

Funzioni, classi e oggetti

Questo gruppo è volutamente selettivo: tre guide, ciascuna delle quali apre un argomento più grande. La guida sulla sigmoide è il ponte verso il machine learning — implementa la funzione di attivazione da zero, compresa la forma numericamente stabile che manca alla formula ingenua. La guida sugli attributi è un’abilità di debugging sotto mentite spoglie: la maggior parte delle sessioni di debugging inizia stampando ciò che l’oggetto contiene davvero, e Python offre quattro modi per vederlo. La guida sulla variabile di classe risolve una persistente confusione dei principianti: una variabile nel corpo della classe è condivisa da tutte le istanze, senza alcuna relazione con global.

OpenCV e immagini

OpenCV è un cluster di interesse separato all’interno della raccolta Python — elaborazione delle immagini piuttosto che programmazione generale — quindi qui ha una sezione mirata e più avanti avrà una sottoguida dedicata. L’ordine conta. Il ritaglio viene per primo perché insegna l’idea centrale: un’immagine OpenCV è un array NumPy, e la maggior parte delle operazioni sono operazioni su array. Il rilevamento dei rettangoli si costruisce sopra, con i contorni, il metodo standard per trovare le forme. La stima della posa con solvePnP è il pezzo avanzato, che combina punti immagine 2D, punti modello 3D e calibrazione della fotocamera.

  • Ritaglia immagini usando OpenCV in Python — Ritaglia un’immagine affettando il suo array NumPy, definendo una regione di interesse o selezionandola in modo interattivo con il mouse.
  • Usa la funzione solvePnP() di OpenCV — Stima la posa di un oggetto dalle corrispondenze tra punti 2D e 3D con cv2.solvePnP, tramite matrici della fotocamera e punti di riferimento.
  • Rileva rettangoli in OpenCV — Rileva i rettangoli trovando i contorni, ordinandoli per area e mantenendo i poligoni a quattro vertici, con HoughLinesP() come alternativa.

Domande frequenti

Come converto una stringa in una lista in Python?

Dipende da che cosa deve essere ogni elemento. Chiama split() per le parole, oppure split(",") per i valori separati da virgole. Usa list(text) per un elemento per carattere. Per un testo che contiene sintassi letterale Python come "[1, 2, 3]", analizzalo con ast.literal_eval(), non con eval(). La guida da stringa a lista copre ogni caso, compresi i campi CSV tra virgolette.

Che cosa fa [:-1] in Python?

[:-1] è uno slicing che significa “dall’inizio fino all’ultimo elemento escluso”. Su una stringa restituisce ogni carattere tranne l’ultimo; su una lista, una nuova lista senza l’ultimo elemento. Lo slicing costruisce un nuovo oggetto, ed è per questo che [:-1] è il modo standard per scartare un newline finale.

Come correggo ConnectionRefusedError [Errno 111]?

L’errore significa che la connessione TCP è stata rifiutata attivamente: di solito non c’è nulla in ascolto sull’indirizzo e sulla porta usati dal tuo client. Avvia prima il server, poi verifica che il client punti allo stesso indirizzo e alla stessa porta. Un server legato a 127.0.0.1 accetta solo connessioni dalla stessa macchina; per un altro computer, controlla il firewall. La guida su ConnectionRefusedError passa in rassegna i controlli in ordine.

Come controllo la versione di Anaconda / Python?

Apri un Anaconda Prompt ed esegui conda -V per la versione di conda e python -V per la versione di Python — due numeri diversi che vengono costantemente confusi. Il risultato di Python riflette l’ambiente attivo del prompt, quindi attiva prima l’ambiente del tuo progetto. conda list mostra entrambe le righe dei pacchetti; conda info stampa entrambe le versioni. Vedi la guida sul controllo della versione di Anaconda.

Come rimuovo \xa0 da una stringa?

\xa0 è uno spazio non interrompente: un carattere Unicode che sembra uno spazio ma non è uguale a uno spazio, e arriva tipicamente in testi copiati da pagine web o PDF. Due rimozioni affidabili sono unicodedata.normalize("NFKD", text), che lo scompone in uno spazio regolare, e text.replace("\xa0", " "). Sostituirlo con uno spazio è più sicuro che eliminarlo, così le parole unite non si fondono. La guida sulla rimozione di \xa0 confronta i metodi.

Come disinstallo Python (Ubuntu / Windows / Miniconda)?

Il metodo giusto dipende da come Python è stato installato. Su Ubuntu, sudo apt-get remove python3 rimuove il pacchetto; purge elimina anche i file di configurazione, e autoremove ripulisce gli orfani. Per Miniconda, prima esporta gli ambienti che vuoi conservare, poi usa il programma di disinstallazione ufficiale e verifica il prefisso prima di eliminare a mano. Entrambi i casi sono coperti nella guida alla disinstallazione in Ubuntu e nella guida alla disinstallazione di Miniconda.

Passi successivi

Due gruppi qui sopra stanno crescendo in sottoguide dedicate: Stringhe e testo, il gruppo più cliccato di questa raccolta, ed Errori ed eccezioni, dove i lettori arrivano con problemi urgenti. Finché non saranno pubblicate, le sezioni qui sopra sono i punti di ingresso. Per un linguaggio a tipizzazione statica o un ecosistema diverso, continua con le guide pratiche su Java o le guide pratiche su C#.