# Costrutti Condizionali - If / Elif / Else In Python, i costrutti condizionali **if**, **elif** ed **else** vengono utilizzati per eseguire blocchi di codice in base al valore di verità di una o più condizioni. Questi costrutti consentono di implementare una logica decisionale nei programmi, rendendo il codice dinamico e interattivo. --- ## If - La base delle condizioni Il costrutto `if` verifica una condizione. Se la condizione è vera (`True`), il blocco di codice associato viene eseguito. Se è falsa (`False`), il blocco viene ignorato. ### Sintassi di base ```python if condizione: # Esegui questo blocco se la condizione è vera codice_eseguito ``` ### Esempio semplice ```python numero = 10 if numero > 5: print("Il numero è maggiore di 5") # Output: Il numero è maggiore di 5 ``` In questo esempio, la condizione `numero > 5` è vera perché `10` è maggiore di `5`. Pertanto, la stringa viene stampata. --- ## If/Else - Gestire il caso "altrimenti" Il costrutto `else` viene utilizzato per specificare un blocco di codice che viene eseguito quando la condizione nell'`if` è falsa. ### Sintassi ```python if condizione: # Codice eseguito se la condizione è vera else: # Codice eseguito se la condizione è falsa ``` ### Esempio ```python numero = 3 if numero > 5: print("Il numero è maggiore di 5") else: print("Il numero è minore o uguale a 5") # Output: Il numero è minore o uguale a 5 ``` In questo caso, la condizione `numero > 5` è falsa, quindi viene eseguito il blocco all'interno di `else`. --- ## If/Elif/Else - Gestire più condizioni Il costrutto `elif` (abbreviazione di "else if") permette di verificare più condizioni una dopo l'altra. Se la prima condizione non è vera, il programma verificherà la seconda, e così via. Se nessuna condizione è vera, viene eseguito il blocco associato all'`else`. ### Sintassi ```python if condizione1: # Codice eseguito se condizione1 è vera elif condizione2: # Codice eseguito se condizione2 è vera else: # Codice eseguito se nessuna condizione è vera ``` ### Esempio ```python numero = 5 if numero > 10: print("Il numero è maggiore di 10") elif numero == 5: print("Il numero è esattamente 5") # Output: Il numero è esattamente 5 else: print("Il numero è minore di 5") ``` In questo esempio, la prima condizione `numero > 10` è falsa, quindi Python verifica la seconda condizione `numero == 5`, che è vera. Viene quindi eseguito il blocco associato all'`elif`. --- ## Condizioni Multiple È possibile combinare più condizioni all'interno dello stesso `if`, `elif` o `else` utilizzando gli operatori logici `and`, `or` e `not`. ### Operatore AND L'operatore `and` viene utilizzato per verificare che **tutte** le condizioni siano vere. ```python numero = 7 if numero > 5 and numero < 10: print("Il numero è compreso tra 5 e 10") # Output: Il numero è compreso tra 5 e 10 ``` In questo caso, entrambe le condizioni `numero > 5` e `numero < 10` sono vere, quindi viene eseguito il blocco di codice. ### Operatore OR L'operatore `or` viene utilizzato per verificare che **almeno una** condizione sia vera. ```python colore = "blu" if colore == "rosso" or colore == "blu": print("Il colore è rosso o blu") # Output: Il colore è rosso o blu ``` Poiché `colore == "blu"` è vero, il blocco viene eseguito. ### Operatore NOT L'operatore `not` inverte il valore di una condizione. Se la condizione è vera, diventa falsa, e viceversa. ```python x = False if not x: print("x è falso") # Output: x è falso ``` --- ## If inline (Ternario) Python supporta un modo compatto per scrivere `if` e `else`, chiamato **operatore ternario** o **if inline**. È utile per espressioni brevi. ### Sintassi ```python variabile = valore1 if condizione else valore2 ``` ### Esempio ```python eta = 18 messaggio = "Sei maggiorenne" if eta >= 18 else "Sei minorenne" print(messaggio) # Output: Sei maggiorenne ``` In questo esempio, la condizione `eta >= 18` è vera, quindi la variabile `messaggio` assume il valore `"Sei maggiorenne"`. --- ## If annidati Gli **if annidati** sono blocchi condizionali all'interno di altri blocchi `if`, `elif` o `else`. Questo può essere utile per gestire condizioni più complesse, anche se va usato con cautela per non rendere il codice meno leggibile. ### Esempio ```python numero = 10 if numero > 5: if numero < 15: print("Il numero è compreso tra 5 e 15") # Output: Il numero è compreso tra 5 e 15 else: print("Il numero è maggiore o uguale a 15") else: print("Il numero è minore o uguale a 5") ``` In questo caso, la prima condizione `numero > 5` è vera, quindi Python entra nell'`if` annidato e verifica `numero < 15`, che è anch'essa vera. --- ## Confronti multipli in un'unica condizione Python supporta confronti multipli concatenati, che permettono di verificare se un valore si trova in un intervallo, senza dover usare operatori logici come `and`. ### Esempio ```python numero = 7 if 5 < numero < 10: print("Il numero è compreso tra 5 e 10") # Output: Il numero è compreso tra 5 e 10 ``` Questo confronto è equivalente a `numero > 5 and numero < 10`, ma è più compatto e leggibile.