Introduzione alla programmazione in Python (III)

Puntate precedenti:

  1. Introduzione alla programmazione in Python (I)
  2. Introduzione alla programmazione in Python (II)

Siamo giunti alla terza parte di questa serie dove vedremo come usare le istruzion condizionali per il controllo del flusso del programma.

DIAGRAMMI DI FLUSSO

Per una descrizione più semplice e intuitiva dei commandi per il controllo del programma, verranno utilizzati diagrammi di flusso. Un diagramma di flusso è un tipo di diagramma (grafico o simbolico) che rappresenta un algoritmo o un processo. Ogni passo nel processo è rappresentato da un simbolo diverso e contiene una breve descrizione del passo del processo. I simboli del diagramma di flusso sono collegati tra loro con frecce che mostrano la direzione del flusso del processo. Un diagramma di flusso mostra tipicamente il flusso dei dati in un processo, dettagliando le operazioni/passi in un formato pittorico che è più facile da capire rispetto alla lettura di un formato testuale.

Simboli del Diagramma di Flusso

Questi sono alcuni dei simboli comuni utilizzati nei diagrammi di flusso per rappresentare i diversi elementi di un processo.

  • Terminatore (es. cerchio con bordo spesso e riempimento): Rappresenta l’inizio o la fine del processo.
  • Processo (es. rettangolo): Rappresenta un’azione o un’operazione da eseguire.
  • Decisione (es. rombo):Rappresenta una condizione o una scelta da prendere.
  • Sottoprogramma (es. rettangolo con bordo doppio):Rappresenta una sotto-routine o una sequenza di operazioni.
  • Input/Output (es. parallelogramma):Rappresenta l’input o l’output di dati.
  • Freccia:Collega i simboli del diagramma di flusso indicando la direzione del flusso del processo.

Instruzioni Condizionali

Le istruzioni condizionali in Python consentono di eseguire determinati blocchi di codice solo se una determinata condizione è vera. Queste istruzioni sono fondamentali per prendere decisioni e controllare il flusso del programma.

La principale istruzione condizionale in Python è l’istruzione “if”. Con l’istruzione “if”, è possibile eseguire un blocco di codice solo se una condizione specificata è vera.

La sintassi di base dell’istruzione “if” è la seguente:

if condizione:
    # Blocco di codice da eseguire se la condizione è vera

Si utilizza l’operatore di confronto (ad esempio ==, >, <, >=, <=) per specificare la condizione che deve essere valutata come vera o falsa. Se la condizione è vera, il blocco di codice indentato verrà eseguito. Se la condizione è falsa, il blocco di codice verrà saltato e l’esecuzione continuerà con la parte successiva del programma.

ESEMPIO

# Allarme temperatura

if T < 273:
   print ”ALLARME: La temperatura è scesa sotto zero!"

Inoltre, è possibile estendere l’istruzione “if” con l’istruzione “else” per eseguire un diverso blocco di codice se la condizione è falsa.

La sintassi dell’istruzione “if/else” è la seguente:

if condizione:
    # Blocco di codice da eseguire se la condizione è vera
else:
    # Blocco di codice da eseguire se la condizione è falsa

In questo caso, se la condizione dell’istruzione “if” è vera, viene eseguito il primo blocco di codice. Altrimenti, se la condizione è falsa, viene eseguito il blocco di codice nell’istruzione “else”.


ESEMPIO

T = 300
if T > 300:
    print("Abbassa la temperatura!")
else:
    print("Condizioni normali.")

È inoltre possibile utilizzare l’istruzione “elif” (abbreviazione di “else if”) per verificare ulteriori condizioni all’interno di un’istruzione “if”.

La sintassi dell’istruzione “if/elif/else” è la seguente:

if condizione1:
    # Blocco di codice da eseguire se la condizione1 è vera
elif condizione2:
    # Blocco di codice da eseguire se la condizione2 è vera
else:
    # Blocco di codice da eseguire se nessuna delle condizioni precedenti è vera

Con l’istruzione “elif”, è possibile specificare una condizione alternativa da verificare se la condizione precedente è falsa. Se una delle condizioni è vera, viene eseguito il blocco di codice corrispondente. Se nessuna delle condizioni è vera, viene eseguito il blocco di codice nell’istruzione “else”.

Le istruzioni condizionali forniscono un potente strumento per controllare il flusso del programma in base alle condizioni specificate. Consentono di prendere decisioni e creare comportamenti dinamici nel codice Python.

ESEMPIO

Il seguente programma verifica se il numero inserito è primo o meno.

numero = int(input("Inserisci un numero: "))

# Verifica se il numero è maggiore di 1
if numero > 1:
    # Ciclo per verificare se il numero è divisibile per altri numeri oltre a 1 e se stesso
    for i in range(2, numero):
        if (numero % i) == 0:
            print(numero, "non è un numero primo.")
            break
    else:
        print(numero, "è un numero primo.")
else:
    print(numero, "non è un numero primo.")

In questo programma, chiediamo all’utente di inserire un numero. Successivamente, verifichiamo se il numero è maggiore di 1. Se è così, eseguiamo un ciclo che controlla se il numero è divisibile per altri numeri (escludendo 1 e se stesso). Se troviamo un divisore, stampiamo che il numero non è primo e interrompiamo il ciclo utilizzando l’istruzione break. Se il ciclo viene completato senza trovare divisori, allora il numero è primo e viene stampato un messaggio di conferma. Se il numero inserito è 1 o un numero negativo, viene stampato un messaggio che indica che non è un numero primo.

ALTRE ISTRUZIONI CONDIZIONALI

Oltre all’istruzione “if”, “else” e “elif”, ci sono altre istruzioni condizionali che possono essere utilizzate in Python. Eccone alcune:

  1. Istruzione “pass”:
    L’istruzione “pass” viene utilizzata come segnaposto quando non si desidera eseguire alcuna operazione in un blocco di codice condizionale. Può essere utilizzata come segnaposto temporaneo durante lo sviluppo del codice. Ad esempio:
if condizione:
    pass
else:
    # Blocco di codice da eseguire
  1. Istruzione “assert”:
    L’istruzione “assert” viene utilizzata per verificare se una determinata condizione è vera e, se non lo è, genera un’eccezione “AssertionError”. Può essere utile per eseguire controlli di validità nel codice. Ad esempio:
x = 5
assert x > 0, "x deve essere maggiore di 0"
  1. Istruzione “try/except”:
    L’istruzione “try/except” viene utilizzata per gestire le eccezioni. Il blocco di codice all’interno del blocco “try” viene eseguito, e se si verifica un’eccezione, viene catturata e gestita nel blocco “except”. Ad esempio:
try:
    # Blocco di codice che potrebbe generare un'eccezione
except TipoEccezione:
    # Blocco di codice da eseguire se si verifica l'eccezione
  1. Istruzione “finally”:
    L’istruzione “finally” viene utilizzata insieme all’istruzione “try/except” per eseguire un blocco di codice indipendentemente dal fatto che si verifichi o meno un’eccezione. Il blocco di codice all’interno di “finally” viene sempre eseguito, indipendentemente dall’esito dell’istruzione “try”. Ad esempio:
try:
    # Blocco di codice che potrebbe generare un'eccezione
except TipoEccezione:
    # Blocco di codice da eseguire se si verifica l'eccezione
finally:
    # Blocco di codice che viene sempre eseguito

Queste sono alcune delle istruzioni condizionali aggiuntive che è possibile utilizzare in Python per gestire situazioni specifiche e controllare il flusso del programma in modo più avanzato.

REFERENCE

  1. M. Lutz and D. Ascher. Learning Python. O’Reilly, 2004. 
  2. Allen B. Downey. Think Python: How to Think Like a Computer Scientist, 2nd edition. O’Reilly, 2015.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.