Le istruzioni condizionali in python

Nel linguaggio python posso sviluppare una struttura condizionale tramite l'istruzione if.

La sintassi dell'istruzione if

if (espressione):
indentazioneblocco di istruzioni

Se l'espressione di controllo (condizione) è vera, l'istruzione if esegue il blocco di istruzioni.

Se invece la condizione è falsa, il programma continua l'esecuzione saltando alla prima istruzione successiva alla struttura condizionale.

Nota. In python il blocco di istruzioni non è delimitato da parentesi o altre parole chiave. Il python utilizza il metodo dell'indentazione, l'inizio delle istruzioni viene spostato verso destra lasciando degli spazi a sinistra per portarle "dentro" la struttura condizionata.

Un esempio pratico

Nel seguente codice chiedo all'utente di digitare un numero sulla tastiera.

Poi assegno il numero digitato alla variabile n.

n=int(input('digita un numero: '))
if (n==5):
indentazioneprint('Hai digitato 5 ')
print('Non hai digitato 5 ')

Nella seconda riga l'istruzione if verifica se la variabile i è uguale a 5.

  • Se l'espressione (n==5) è vera, l'interprete python esegue il blocco di istruzioni dentro la if. In questo caso, il blocco di istruzioni è composto soltanto dalla prima istruzione print. Il risultato finale è il seguente:

    Hai digitato 5

  • Se l'espressione (n==5) è falsa, vuol dire che l'utente ha digitato un altro numero. L'interprete python salta alla prima istruzione successiva alla struttura condiziale, ossia la seconda istruzione print. Il risultato finale è il seguente:

    Non hai digitato 5

L'esecuzione alternativa ( ELSE )

L'istruzione if prevede anche un blocco alternativo di istruzioni da eseguire quando la condizione non si verifica.

Questo secondo blocco va inserito dopo la clausola else:

if (condizione):
indentazioneblocco istruzioni 1
else:
indentazioneblocco istruzioni 2

Se la condizione è vera, l'istruzione if esegue il blocco 1.

Viceversa, se la condizione è falsa, l'istruzione if esegue il blocco 2.

Un esempio pratico

Nel seguente codice chiedo all'utente di digitare un numero intero e lo assegno alla variabile n.

n=int(input('digita un numero: '))
if (n>0):
indentazioneprint('Il numero è positivo')
else:
indentazioneprint('Il numero non è positivo')

Nella condizione verifico se il numero è maggiore di 0.

  • Se la condizione è vera, l'istruzione if esegue il primo blocco e stampa sullo schermo il messaggio "il numero è positivo".

    il numero è positivo

  • Se, invece, la condizione è falsa, l'istruzione if esegue il secondo blocco e stampa sullo schermo il messaggio "il numero non è positivo".

    il numero non è positivo

Le condizioni in serie ( ELIF )

Nell'istruzione if posso inserire anche più blocchi associati a condizioni in serie.

In questo caso utilizzo la clausola elif:

if (condizione):
indentazioneblocco istruzioni 1
elif (condizioni2):
indentazioneblocco istruzioni 2
elif (condizioni3):
indentazioneblocco istruzioni 3

Dove elif è l'abbreviazione di "else if" (altrimenti se).

Non c'è limite al numero delle condizioni in serie (elif). Ne posso inserire anche più di una, due, tre, ecc.

Un esempio pratico

Nel seguente codice chiedo all'utente di digitare un numero e lo assegno alla variabile n.

n=int(input('digita un numero: '))
if (n>0):
indentazioneprint('il numero è positivo')
elif (n<0):
indentazioneprint('il numero è negativo')
else:
indentazioneprint('il numero è zero')

L'esecuzione del programma si svolge nel seguente modo:

  • Se la prima condizione è vera (n>0) il programma stampa a video il messaggio "il numero è positivo" e salta alla fine della struttura condizionale.

    il numero è positivo

  • Se la prima condizione è falsa, nella elif verifico se è minore di zero (n<0). Se la elif è vera, il programma stampa il messaggio "il numero è negativo" e salta alla fine della struttura condizionale.

    il numero è negativo

  • Se anche l'elif è falsa, allora il programma esegue il blocco di istruzione dopo la else. Stampa il messaggio "il numero e zero".

    il numero è zero

Le condizioni annidate

Nel linguaggio python posso anche annidare più istruzioni if.

if (condizione):
indentazioneif (condizione2):
indentazioneindentazioneif (condizione3):

Non c'è limite al numero delle if annidate.

Un esempio pratico

Nel seguente codice chiedo all'utente di digitare un numero.

Poi verifico se il numero è positivo, negativo o nullo.

n=int(input('digita un numero: '))
if (n>0):
indentazioneprint('il numero è positivo')
else:
indentazioneif (n==0):
indentazioneindentazioneprint('il numero è zero')
indentazioneelse:
indentazioneindentazioneprint('il numero è negativo')

All'interno della clausola else è presente una seconda if annidata.

  • Se la condizione (n>0) è vera, il programma visualizza il messaggio "il numero è positivo".
  • Se la condizione (n>0) è falsa, il programma esegue il blocco di istruzione else: dove è presente la seconda if che verifica se il numero è uguale a zero (n==0) oppure no. In quest'ultimo caso, per esclusione il numero è negativo.



Per scrivere un commento

knowledge base
  1. Il linguaggio Python
  2. Come installare Python sul PC
  3. Come scrivere un programma in Python
  4. Come usare Python in modalità interattiva
  5. Le variabili
  6. I numeri
  7. Le strutture iterative ( o cicli )
  8. Le strutture condizionali
  9. I file in python