L'indentazione è una caratteristica fondamentale del codice leggibile e gestibile, ma pochi linguaggi la applicano. Python è uno di quei pochi.

Se Python determina che il tuo codice è rientrato in modo errato, vedrai il messaggio "IndentationError" quando esegui il tuo codice. Ma come risolverlo e come prevenirlo in futuro?

Perché ottieni l'IndentationError in Python?

L'errore "IndentationError: previsto un blocco indentato" è qualcosa che probabilmente vedrai quando inizi a utilizzare Python per la prima volta, specialmente se provieni da un altro linguaggio di programmazione.

Il specifiche delle regole di indentazione di Python sono complessi, ma si riducono a una cosa: il codice di rientro nei blocchi. Questo vale per le funzioni, le clausole if e così via. Ecco un esempio di codice Python formattato in modo errato:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" e lname == "Siyal":
print("Sei Gaurav")
altro:
print("Sei qualcun altro")

Quando provi a eseguire il codice sopra, riceverai un messaggio come questo:

instagram viewer
 File "tmp.py", riga 5
print("Sei Gaurav")
^
IndentationError: previsto un blocco indentato

Dovresti invece aggiungere una tabulazione o una serie di spazi all'inizio delle due righe che rappresentano i blocchi:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" e lname == "Siyal":
print("Sei Gaurav")
altro:
print("Sei qualcun altro")

Se rientri con gli spazi, puoi effettivamente utilizzare qualsiasi numero che ti piace, purché tu sia coerente e non ambiguo. La maggior parte dei programmatori utilizza due, quattro o otto spazi.

Casi comuni di corretta indentazione

Ecco alcuni esempi a cui puoi fare riferimento, così puoi assicurarti di indentare correttamente.

Se dichiarazioni

Rientra il blocco che segue un Se dichiarazione:

if my_name == "Gaurav":
print("Mi chiamo Gaurav")
restituisce Vero

Funzioni

Il corpo di una funzione è un blocco. Dovresti far rientrare l'intero blocco:

def numero_magico():
risultato = 42
risultato di ritorno

stampa numero_magico()

Per i loop

Come con un'istruzione if, il corpo di un ciclo for dovrebbe essere rientrato di un livello in più rispetto alla riga che inizia con il per parola chiave:

per i nell'intervallo (10):
stampa (i)

Assicurati che il tuo editor rientri correttamente

La maggior parte dei moderni editor di testo supporta il rientro automatico del codice. Se il tuo editor determina che una riga di codice deve essere rientrata, aggiungerà automaticamente tabulazioni o spazi.

Nel Spyder, le opzioni di rientro sono disponibili sotto Strumenti > Preferenze > Codice sorgente:

Se stai usando vim, puoi modifica la tua configurazione e usa il rientro automatico e le relative opzioni per configurare il rientro. Ad esempio, ecco una configurazione comune:

imposta il rientro automatico
imposta scheda di espansione
imposta tabstop=4
imposta softtabstop=4
impostare larghezza di spostamento=4

Questo rientrerà automaticamente utilizzando quattro spazi.

Tuttavia, nessun editor può rendere il rientro automatico a prova di proiettile. Dovrai comunque prestare attenzione al rientro perché alcuni casi sono ambigui:

In questo esempio, la finale Restituzione l'istruzione è rientrata di un livello rispetto alla firma della funzione sulla prima riga. Tuttavia, se posizioni il cursore alla fine della penultima riga e premi accedere, può succedere una delle due cose. Il tuo editor potrebbe posizionare il cursore:

  1. Due livelli di rientro, allineati con "res =..."
  2. Un livello di rientro, allineato con "else:"

Il tuo editor non è in grado di distinguere tra questi due casi: potresti voler aggiungere più codice nel blocco if/else, oppure potresti non farlo.

Gestione dell'errore "Previsto un blocco indentato" di Python

Gli errori sono un evento quotidiano in Python, proprio come in qualsiasi altro linguaggio di programmazione. Le rigide regole di Python sull'indentazione possono aggiungere un nuovo tipo di errore a cui pensare, ma sono utili. Il codice correttamente rientrato è più leggibile e coerente tra i team.

L'errore di indentazione non è l'unico che dovrai affrontare. Aiuta a familiarizzare con gli errori Python comuni in modo da sapere come eseguirne il debug e cosa fare per risolverli.

Che cosa significa l'errore "Elenca l'indice fuori dall'intervallo" di Python?

Leggi Avanti

CondividereTwittaCondividereE-mail

Argomenti correlati

  • Programmazione
  • Pitone

Circa l'autore

Gaurav Siyal (64 articoli pubblicati)

Gaurav Siyal ha due anni di esperienza di scrittura, scrivendo per una serie di società di marketing digitale e documenti sul ciclo di vita del software.

Altro da Gaurav Siyal

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti