La sintassi di Python: guida base

Se hai mai programmato in Java, PHP, C, C++ o C# ti sarai abituato a delimitare ogni riga di codice con il punto e virgola (;).

Avrai acquisito anche l’abitudine di usare le parentesi graffe ({}) per racchiudere il contenuto di cicli, funzioni e classi.

Con Python questi elementi non sono essenziali, per cui la sua sintassi risulterà molto più semplice e pulita.

Indentazione significativa

Nei linguaggi di programmazione la sintassi può essere caratterizzata due tipi di indentazione:

  • non significativa
  • significativa

Nel primo caso, l’indentazione (o nidificazione) non è fondamentale per mantenere una corretta sintassi o per eseguire correttamente il codice.

Ad esempio, in PHP l’indentazione non è significativa, per cui le due porzioni di codice che seguono sono corrette:

<?php

$count = 0;

while ($count < 10) {
    echo 'Ciclo numero ' . $count;
    $count++;
}
<?php

$count = 0;

while ($count < 10) { echo 'Ciclo numero ' . $count; $count++; }

L’interprete di PHP ignorerà gli spazi bianchi o eventuali indentazioni e andrà a eseguire il codice sulla base di punti e virgola (;), per separare le espressioni di codice, e parentesi graffe ({}), per riconoscere classi o strutture di controllo.

Invece in Python sono le indentazioni (spazi bianchi) a garantire una corretta esecuzione del programma. Quindi la correttezza della sintassi dipende da un’indentazione significativa.

Ora fai attenzione a questa porzione di codice in Python:

def test():
    count = 0

    while count < 10:
        print(count)

        count = count + 1

test()

Da come puoi vedere non abbiamo parentesi graffe o punti e virgola ma continue indentazioni del codice e doppi punti (:) per iniziare una funzione o un ciclo (e anche altro che vedremo in futuro).

Ora non è fondamentale che tu capisca il meccanismo di questo codice, ma è importante che tu riconosca la struttura della sintassi.

A detta di molti, questa caratteristica rende il codice in questo linguaggio più chiaro da leggere e da seguire durante la sua stesura.

Se non ancora risultasse chiaro, queste sono porzioni di codice Python con una sintassi errata:

def test():
count = 0

    while count < 10:
    print(count)

    count = count + 1

test()
name = 'Michele'

if name == 'Michele':
print("Hello Michele")

Commenti nel codice

I commenti sono fondamentali per descrivere un programma così da non dimenticare cosa fa una funzione o una determinata porzione di codice.

In Python per scrivere un commento si inizia con il simbolo cancelletto (#) seguito da un testo:

# Qui ho definito una variabile con un nome
nome = "Michele"

È bene ricordare che l’interprete ignorerà il commento durante l’esecuzione del programma.

In un articolo dedicato vedremo nello specifico i commenti e altre modalità per scriverli.

Continuazione di una espressione o istruzione

Quando scriviamo codice Python, ogni volta che andiamo a capo stiamo scrivendo una nuova riga di codice, detta anche espressione o istruzione.

Ecco un esempio:

anni = 32
nome = 'Luca'
scuola = 'scientifico'

if (anni > 18) and (nome == 'Luca') and (scuola == 'scientifico'):
    print(nome + " è maggiorenne e fa lo " + scuola)

Può capitare che una specifica espressione diventi troppo lunga e abbiamo bisogno di andare a capo.

Ma non possiamo farlo direttamente. In Python quando dobbiamo continuare una riga di codice sulla prossima usiamo il backslash (\).

Nel caso del codice visto poco fa, possiamo andare a capo dopo l’ultimo “and” mettendo il backslash (\) subito dopo:

anni = 32
nome = 'Luca'
scuola = 'scientifico'

if (anni > 18) and (nome == 'Luca') and \
(scuola == 'scientifico'):
    print(nome + " è maggiorenne e fa lo " + scuola)

Parole chiave

Python ha un suo set di parole chiave che definiscono i costrutti del linguaggio.

Un costrutto di un linguaggio può permetterci di eseguire un loop, determinare una struttura di controllo o definire una classe.

Ecco una lista delle parole chiave in Python:

  • False
  • None
  • True
  • and
  • as
  • assert
  • break
  • is
  • lambda
  • raise
  • return
  • class
  • continue
  • def
  • del
  • elif
  • else
  • except
  • nonlocal
  • not
  • try
  • while
  • with
  • finally
  • for
  • from
  • global
  • if
  • import
  • in
  • or
  • pass
  • yield