Controllo di flusso
Operatori logici nelle condizioni
È possibile utilizzare gli operatori logici per combinare più condizioni all’interno della stessa istruzione if.
Gli operatori logici principali sono:
andornot
Operatore and
L’operatore and restituisce True solo se tutte le condizioni sono vere.
eta = 17
ha_documento = True
if eta >= 16 and ha_documento:
print("Puoi partecipare")
In questo caso il messaggio viene stampato solo se:
eta >= 16è vera;ha_documentoè vera.
Operatore or
L’operatore or restituisce True se almeno una delle condizioni è vera.
giorno_festivo = False
permesso_speciale = True
if giorno_festivo or permesso_speciale:
print("Ingresso consentito")
In questo caso basta che una delle due condizioni sia vera perché il blocco venga eseguito.
Operatore not
L’operatore not inverte il valore logico di una condizione:
TruediventaFalse;FalsediventaTrue.
piove = False
if not piove:
print("Si può uscire")
In questo caso il messaggio viene stampato perché piove è falso, quindi not piove è vero.
Combinare più operatori logici
Gli operatori logici possono anche essere combinati tra loro.
eta = 15
ha_documento = True
accompagnato = True
if (eta >= 16 and ha_documento) or accompagnato:
print("Puoi partecipare")
In questo caso il messaggio viene stampato se:
- la persona ha almeno 16 anni e possiede un documento;
- oppure è accompagnata.
Le parentesi aiutano a rendere più chiara la logica della condizione.
Ricapitoliamo
and→ tutte le condizioni devono essere vere;or→ almeno una condizione deve essere vera;not→ inverte il valore logico di una condizione.