IL COSTRUTTO CONDIZIONALE

a cura di Michele Andreozzi

Introduzione

CONCETTI FONDAMENTALI DI LOGICA

La lezione che stai per affrontare non è particolarmente complicata dal punto di vista tecnico, ma per comprendere davvero l'uso del costrutto condizionale è necessaria una breve introduzione alla logica, che a primo impatto potrebbe sembrare più complessa del dovuto. Prenditi tutto il tempo necessario per comprendere ogni concetto teorico a fondo.

L'applicazione informatica di tali strumenti risulterà molto più semplice!

Algebra Booleana

In apertura di corso abbiamo gestito le operazioni aritmetiche. Per introdurre efficacemente i costrutti condizionali, spendiamo qualche parola per parlare dell’algebra booleana

 

Si definisce booleana un’espressione che quando valutata può assumere solo due valori, vero o falso, in base agli operatori logici e al valore delle costanti e delle variabili contenute nell'espressione. In particolare Python definisce due espressioni: True e False, da utilizzare nella sintassi dei programmi, utili proprio a tale scopo.

Ad esempio potresti imbatterti in espressioni del tipo

5 == (3+2) assumerà valore True

5 == 6 assumerà valore False

Nell'algebra booleana un altro strumento fondamentale sono gli operatori, che si dividono in operatori logici e relazionali.

Gli operatori

Gli operatori relazionali sono:

  • ==                 uguale

  • !=                  diverso

  • >                   maggiore

  • <                   minore

  • >=                 maggiore o uguale

  • <=                 minore o uguale

e permettono di confrontare due variabili o costanti mettendole appunto in relazione per il valore che esse assumono.

Invece gli operatori logici sono:

  • and              congiunzione logica, ovvero, nella lingua italiana, e

  • or                 disgiunzione inclusiva, ovvero o

  • not               negazione logica, ovvero non

e permettono di costruire espressioni composte valutando il valore di booleano di due espressioni.

Adesso il loro significato può sembrare astratto e complicato, ma sono uno strumento chiave nella programmazione e il loro uso ti apparirà più chiaro tramite esempi ed esercizi.

Quando valutati, nell’ambito dell’aritmetica Booleana, questi operatori rispettano un ordine di priorità: 

 

Da priorità maggiore a minore: 

1. negazione not

2. operatori di relazione <, >, <=, >=

3. uguaglianza ==, disuguaglianza !=

4. congiunzione and

5. disgiunzione or

Per comprendere come questi operatori interagiscono tra loro è necessario comprendere lo strumento delle tabelle di verità. Esse sono tavole che riportano il valore assunto da un'espressione, secondo la logica binaria True/False.

Ora è possibile dunque costruire, per ciascun operatore logico, le rispettive tabelle di verità, che ci permettono di valutare i valori di espressioni composite. Qui sono riportate le tabelle di verità per i principali operatori, in funzione di tutti i possibili valori in ingresso:

Tabella di verità operatore not

                                                Valore espressione                                   Valore una volta eseguito l'operatore

                                                                A                                                                                  !A

                                                             False                                                                             True

                                                              True                                                                             False


 

Tabella di verità operatore and

                                Valore espressione 1                 Valore espressione 2            Valore una volta eseguito l'operatore

                                                  A                                                    B                                                        A and B

                                               False                                             False                                                       False

                                               False                                              True                                                        False

                                                True                                              False                                                       False

                                                True                                               True                                                        True

 


 

Tabella di verità operatore or

                                Valore espressione 1                  Valore espressione 2          Valore una volta eseguito l'operatore

                                                 A                                                      B                                                         A or B

                                              False                                               False                                                      False

                                              False                                                True                                                       True

                                               True                                                False                                                      True

                                               True                                                 True                                                       True

 


Si può allora notare che l'operatore not inverte il valore di verità dell'espressione, l'operatore and fa assumere valore True solo se entrambe le espressioni hanno valore True e l'operatore or fa assumere valore True se almeno una delle due espressioni ha valore True.

Ovviamente tutti questi operatori possono a loro volta essere combinati a loro volta per creare espressioni più complicate.

IL COSTRUTTO CONDIZIONALE

Grazie a tutti questi operatori logici e relazionali possiamo ora scrivere i costrutti condizionali. Essi permettono al calcolatore di eseguire un'istruzione (o una serie di istruzioni) solo se una particolare condizione è verificata.

Il primo costrutto che incontriamo è quello if, esso esegue le istruzioni condizionali solo se l'espressione da valutare risulta True.

Ad esempio:

 

if 2 > 1:

   print("2 è maggiore di 1")

 

La condizione “2 > 1” risulterà vera e il calcolatore mostrerà il messaggio voluto, in questo caso "2 è maggiore di 1".

Attenzione!

Python riconosce le istruzioni logicamente legate ad un costrutto condizionale tramite indentation, ovvero grazie allo spazio ad inizio riga che precede tali operazioni.

Ad esempio:

 

if 2 > 1:

   print("2 è maggiore di 1")

   print("anche se non era difficile saperlo")

print("cosa vuoi fare ora?")

 

In questo caso i primi due utilizzi di print sono correttamente indentati e i rispettivi messaggi verranno visualizzati solo se la condizione dell'if risulta vera. L'ultimo uso di print invece non è indentato rispetto ad if, e perciò verrà eseguito indipendentemente dal valore della condizione. Per indentare un’istruzione (normalmente l’ambiente lo farà in automatico), premi il tasto “Tab” sulla tua tastiera (appena sopra il caps lock), mentre per eliminare l’indentazione e scrivere del codice al di fuori del costrutto if usa il backspace.

Il costrutto else invece è logicamente equivalente al termine italiano "altrimenti" e dunque esegue le operazioni ad esso legate solo se la condizione precedente è risultata False.

Ad esempio:

 

if 2 > 3:

   print("2 è maggiore di 3")

else:

   print("2 è minore di 3")

 

In questo caso verrà visualizzato il secondo messaggio, poiché l'utilizzo di if ha restituito valore False. Attenzione però, se la prima espressione risultasse vera il blocco else non verrebbe eseguito dal calcolatore, che avendo valutato True la condizione dell'if, non esegue le alternative ad esso.

Utilizzando in modo composto if e else si possono costruire espressioni sempre più complicate, ad esempio:

 

if 1 >2:

   print("1 è maggiore di 2")

else if 1 == 2:

   print("1 è uguale a 2")

else:

   print("1 è minore di 2")

 

NOTA: Python permette di semplificare la seconda espressione (else if) usando il costrutto elif che è sostanzialmente equivalente.

CONCLUSIONE

Complimenti, hai completato la terza lezione!

In questa lezione hai effettuato il setup del tuo ambiente di sviluppo e hai imparato i concetti di base del linguaggio Python, come l'input e l'output, la gestione delle variabili e l'uso dei commenti.

Usa i pulsanti qui sotto per avanzare alla quarta lezione o per tornare alla home del corso.

  • Facebook - Bianco Circle
  • Instagram - Bianco Circle