Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Indentazione

Per programmare in Python, è fondamentale capire come definire i blocchi di istruzioni utilizzando correttamente l'indentazione del codice: ecco come.
Per programmare in Python, è fondamentale capire come definire i blocchi di istruzioni utilizzando correttamente l'indentazione del codice: ecco come.
Link copiato negli appunti

In questa lezione vedremo più in dettaglio uno degli aspetti fondamentali della programmazione con Python: l'indentazione.

Indentazione e blocchi di codice

A differenza di altri linguaggi che delimitano blocchi di codice con parentesi grafe (come C, C++ e Java) o con parole riservate come begin/end, Python usa l'indentazione. Indentare il codice è una pratica comune in tutti i linguaggi, perché semplifica la lettura del codice e la compresione della sua struttura. Anzichè usare due meccanismi separati per compilatori/interpreti (parentesi o keyword) e persone (indentazione), per Python si è scelto di usare l'indentazione per entrambi. Questa scelta ha diversi aspetti positivi, tra cui:

  • il linguaggio risulta più chiaro e leggibile;
  • la struttura del programma coincide sempre con quella dell'indentazione;
  • lo stile di indentazione è necessariamente uniforme in qualsiasi listato.

Questo significa che, in Python, l'indentazione è significativa, e che indentare in modo incorretto può portare a comportamenti sbagliati del programma o a errori.

Vediamo un semplice esempio. Di seguito usiamo il costrutto if, che approfondiremo in una lezione successiva.

print("eseguito sempre all'inizio")
if condizione:
    print('eseguito in mezzo solo se la condizione è vera')
    print('eseguito in mezzo solo se la condizione è vera')
    print('eseguito in mezzo solo se la condizione è vera')
print('eseguito sempre alla fine')

In questo esempio possiamo vedere che:

  1. il primo print, l'if, e l'ultimo print hanno lo stesso livello di indentazione, e vengono eseguiti sempre;
  2. dopo l'if c'è un blocco di codice con un livello di indentazione maggiore, che include tre print;
  3. se la condizione dell'if è vera, i tre print vengono eseguiti;
  4. se la condizione dell'if è falsa, i tre print non vengono eseguiti.

È quindi molto importante fare attenzione all’indentazione, perché viene sempre valutata nel processo di parsing del programma. Di seguito è mostrato un esempio di errore dovuto ad una indentazione scorretta:

Convenzioni

Per avere codice più consistente, la Python Software Foundation ha reso disponibile un documento chiamato PEP 8 (acronimo che sta per Python Enhancement Proposal), che raccoglie diverse convenzioni e linee guida.

La PEP 8 include anche una sezione sull'indentazione, che suggerisce tra le altre cose di:

  • usare sempre 4 spazi per livello di indentazione;
  • evitare l'uso dei caratteri di tabulazione;
  • non mischiare mai l'uso di tabulazioni e spazi.

Anche se la PEP 8 suggerisce di seguire queste convenzioni, è possibile (sebbene fortemente sconsigliato) usare tab o un numero diverso di spazi. Fintanto che i livelli di indentazione sono consistenti, il programma comunque funzionerà.

Ci sono tuttavia alcune eccezioni. Se state lavorando su codice che usa una convenzione diversa, è meglio adeguarsi ad essa o, in alternativa, adattare tutto il codice esistente alla PEP 8. Inoltre, è comunque possibile (e talvolta consigliato) usare più o meno spazi per allineare elementi all'interno di una lista, o argomenti all'interno di una chiamata a funzione:

lista = [0, 1, 2, 3, 4,
         5, 6, 7, 8, 9]

funzione(arg1, arg2,
         arg3, arg4)

Ti consigliamo anche