Salta ai contenuti
Manuale LogoManuale Logo

Booleani

Molte domande ammettono due sole risposte, come “vero” e “falso”:

  • La luce è accesa? Sì o No.
  • Sono maggiorenne? Vero o Falso.
  • Fa freddo fuori? Vero o Falso.

In Python esistono esattamente questi due valori: True (vero) e False (falso). Il tipo di dato che li contiene si chiama booleano (bool).

La prima lettera è sempre maiuscola. true e false (tutto minuscolo) causano un errore.

luce_accesa = True
fa_freddo = False
print(type(luce_accesa)) # <class 'bool'>

Ogni confronto tra due valori restituisce True oppure False:

print(5 > 3) # True: 5 è maggiore di 3? Sì
print(5 < 3) # False: 5 è minore di 3? No
print(5 == 5) # True: 5 è uguale a 5? Sì
print(5 != 3) # True: 5 è diverso da 3? Sì
print(5 >= 5) # True: 5 è maggiore o uguale a 5? Sì
print(5 <= 4) # False: 5 è minore o uguale a 4? No

Per combinare più condizioni puoi usare tre operatori logici.

Restituisce True solo se tutte le condizioni sono vere. Nell’esempio dell’auto, puoi passare solo se la strada è libera e il semaforo è verde.

eta = 20
ha_patente = True
# Puoi guidare solo se sei maggiorenne E hai la patente
print(eta >= 18 and ha_patente) # True

Restituisce True se almeno una condizione è vera. Per esempio, puoi entrare al cinema se hai il biglietto o sei membro del club.

ha_biglietto = False
e_membro = True
print(ha_biglietto or e_membro) # True: basta una delle due

Inverte il valore: trasforma True in False e viceversa.

piove = False
print(not piove) # True: NON piove, quindi posso uscire
maggiorenne = True
print(not maggiorenne) # False

In Python anche valori diversi da True e False possono essere valutati come veri o falsi. Ogni valore ha un comportamento booleano.

I valori che Python considera falsi (equivalenti a False):

  • False
  • 0 e 0.0
  • "" (stringa vuota, cioè nessun testo)
  • [] (lista vuota)
  • None (assenza di valore)

Tutto il resto è considerato vero: per esempio un numero diverso da zero, una stringa non vuota o una lista con elementi.

print(bool(0)) # False: zero è falso
print(bool("")) # False: stringa vuota è falsa
print(bool([])) # False: lista vuota è falsa
print(bool(42)) # True: qualsiasi numero non-zero è vero
print(bool("ciao")) # True: qualsiasi testo non-vuoto è vero
print(bool([1, 2])) # True: una lista con elementi è vera

Nelle condizioni puoi quindi verificare direttamente se un nome è stato inserito:

nome = ""
if nome:
print("Ciao, " + nome + "!")
else:
print("Non hai inserito nessun nome.") # questa viene stampata