Python: indentazione costrutti decisionali

Nel video scorso abbiamo accennato alla possibilità di ricevere in input dei valori dall’utente. Oggi andiamo più nel dettaglio e vediamo come gestirli con i costrutti decisionali: le istruzioni del linguaggio che ci servono a prendere delle decisioni, cioè a fare certe cose nel caso una condizione sia vera e altre nel caso sia falsa.

Il blocco di codice

Non si può parlare di costrutti senza prima parlare del concetto di blocco di codice. In Python un blocco di codice è un insieme di istruzioni incolonnate sotto lo stesso livello di indentazione. Detto così può sembrare oscuro, ma con il primo esempio diventa chiarissimo.

Creiamo un nuovo file e riceviamo in input un numero dall’utente. Come abbiamo già visto, input restituisce una stringa, quindi se vogliamo usarla come numero dobbiamo convertirla. Qui vogliamo un numero intero, senza decimali, quindi usiamo la funzione int. Possiamo mettere input direttamente dentro int, come argomento (nella lezione scorsa avevamo fatto la stessa cosa in due passaggi, convertendo poi la variabile).

Il primo if

Ora nella variabile n abbiamo un numero intero. Vogliamo scrivere a terminale una considerazione su questo numero, se per esempio è maggiore di zero. Usiamo l’istruzione if, seguita dalla condizione e dai due punti, che introducono il blocco di codice da eseguire quando la condizione è vera. La riga successiva va rientrata: l’indentazione è una sequenza di spazi (di solito quattro) che l’editor mette automaticamente; se non lo fa dovete farlo voi. Tutte le istruzioni con quel livello di rientro fanno parte del blocco e vengono eseguite solo se la condizione è vera. Il programma, che chiamiamo decisioni.py:

n = int(input("Inserisci un numero: "))
if n > 0:
    print("Il numero è maggiore di 0")

Lo eseguiamo dal terminale:

python3 decisioni.py

Se inseriamo 3, il programma risponde:

Il numero è maggiore di 0

Se invece inseriamo un numero negativo, per esempio -3, non viene stampato nulla.

Else

Se vogliamo stampare qualcosa anche quando la condizione non è vera usiamo else, che introduce il blocco di codice alternativo:

n = int(input("Inserisci un numero: "))
if n > 0:
    print("Il numero è maggiore di 0")
else:
    print("Il numero non è maggiore di 0")

Ripetendo la prova con un numero negativo viene scartato il ramo sotto l’if ed eseguito quello sotto l’else, perché n > 0 non è vera.

Elif

Possiamo fare più di un test alla volta inserendo altre condizioni con elif, contrazione di “else if”. Aggiungiamo il caso del numero minore di zero; l’else finale diventa il caso residuale, quello che si esegue quando nessuna delle condizioni precedenti è vera, cioè il numero è uguale a zero. Il programma completo:

n = int(input("Inserisci un numero: "))
if n > 0:
    print("Il numero è maggiore di 0")
elif n < 0:
    print("Il numero è inferiore a 0")
else:
    print("Il numero è uguale a 0")

Proviamo tutti e tre i casi. Con 5:

Il numero è maggiore di 0

Con -3:

Il numero è inferiore a 0

Con 0:

Il numero è uguale a 0

Con zero non è vero né che n è maggiore di zero né che è minore, e quindi viene eseguito il ramo else.

Chiusura

Questo è quanto sui costrutti decisionali e sull’indentazione, cioè sulla creazione dei blocchi di codice: approfondiremo il concetto nelle prossime lezioni. Per ora avete elementi sufficienti per aprire il vostro editor e sperimentare. Provate altri tipi di condizioni e, quando vi sentite sicuri, passate al video successivo: fare pratica è il modo corretto di imparare.

Link e risorse

Sostieni il canale

PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!

questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!