Cos'è un booleano?
In programmazione, un booleano è un tipo di dato con esattamente due valori, vero e falso. I programmi ottengono i booleani da confronti come age >= 18 e li usano per decidere quale codice eseguire, nelle istruzioni if e nelle condizioni dei cicli.
Aggiornato il 24 settembre 2026
Ogni decisione che un programma prende si riduce a una domanda con due risposte possibili: se la password è corretta, se il carrello è vuoto, se il timer è arrivato a zero. Il booleano è il tipo di dato che contiene quelle risposte. Prende il nome da George Boole, un matematico inglese che descrisse un'algebra di valori vero e falso in libri pubblicati nel 1847 e nel 1854.
Da dove nascono i booleani
Raramente scrivi True o False direttamente. La maggior parte dei booleani nasce dai confronti, che fanno una domanda su due valori e rispondono con un booleano:
| Operatore | Significato | Esempio | Risultato |
|---|---|---|---|
== | uguale a | 3 == 3 | True |
!= | diverso da | 3 != 3 | False |
<, > | minore di, maggiore di | 2 < 5 | True |
<=, >= | al massimo, almeno | 17 >= 18 | False |
Un booleano si può salvare in una variabile come qualsiasi altro valore e combinare con altri booleani:
False
<class 'bool'>
False
True
Combinare i booleani: and, or, not
Tre operatori logici costruiscono condizioni più grandi a partire da quelle più piccole. and è vero solo quando entrambi i lati sono veri. or è vero quando almeno un lato è vero. not inverte un singolo valore.
a | b | a and b | a or b | not a |
|---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
Python scrive questi operatori come parole. C, Java e JavaScript usano simboli: && per and, || per or, ! per not. Tutti e quattro i linguaggi smettono di valutare appena conoscono la risposta, quindi in a and b il lato destro non viene mai controllato quando a è falso. Si chiama valutazione a corto circuito. La guida agli operatori logici in Python la tratta nel dettaglio.
Come i booleani controllano un programma
Un'istruzione if esegue il suo blocco solo quando la condizione è vera. Un ciclo while ripete il suo blocco finché la condizione resta vera, quindi ogni ciclo è guidato da un booleano che viene ricontrollato prima di ogni passaggio. Questa ripetizione si chiama iterazione.
Hot day
Countdown: 3
Countdown: 2
Countdown: 1
Quando count arriva a 0, la condizione count > 0 diventa False e il ciclo finisce. Se la condizione non potesse mai diventare falsa, il ciclo andrebbe avanti all'infinito.
I booleani come 1 e 0
A un booleano basta un solo bit di informazione: 1 per vero, 0 per falso. In pratica, i linguaggi memorizzano un booleano in almeno un byte intero, perché il byte è la più piccola unità di memoria che ha un proprio indirizzo. In C, un bool di <stdbool.h> occupa 1 byte con gcc e clang. I programmi che hanno bisogno di milioni di flag ne mettono 8 in ogni byte con gli operatori bit a bit.
I linguaggi non sono d'accordo sul fatto che un booleano sia anche un numero. In Python, bool è una sottoclasse di int, quindi True è uguale a 1 e False è uguale a 0. Questo rende facile contare:
True True
2
3 correct
Anche JavaScript dà 2 per true + true. C non ha avuto un tipo booleano fino a C99 e tratta ancora qualsiasi numero diverso da zero come vero. Java è rigido: if (1) non compila, perché una condizione Java deve essere un boolean.
Valori truthy e falsy
Python e JavaScript ti permettono di usare qualsiasi valore come condizione, non solo True e False. I valori che contano come falsi si chiamano falsy; tutti gli altri sono truthy.
0 -> False
42 -> True
'' -> False
'False' -> True
[] -> False
[0] -> True
None -> False
In Python, lo zero, le stringhe vuote, le collezioni vuote e None sono falsy. La stringa "False" è truthy, perché è una stringa con cinque caratteri. JavaScript ha i suoi valori falsy, tra cui false, 0, "", null, undefined e NaN, e lì un array vuoto [] è truthy. Vedi truthy e falsy in JavaScript per tutte le regole.
Errori comuni
Confrontare con True. if is_ready == True: funziona, ma if is_ready: dice la stessa cosa con meno da leggere. Per il caso falso, scrivi if not is_ready:.
Trattare il testo come un booleano. L'input di un utente, di un file o di un modulo arriva come stringa, quindi bool("false") è True. Confronta invece il testo: answer == "yes".
Maiuscole sbagliate. Python scrive True e False; JavaScript, Java e C scrivono true e false. Scrivere true in Python dà NameError: name 'true' is not defined.
Nomi vaghi. Dai a un booleano il nome di una domanda sì o no, come is_valid, has_access o can_edit, così una condizione si legge come una frase: if user.can_edit:.
Cosa leggere dopo
I booleani decidono quante volte gira un ciclo, quindi cos'è l'iterazione è la pagina naturale da leggere dopo, e cos'è un bit mostra lo 0 e l'1 sotto ogni vero e falso. Per i dettagli di Python, leggi numeri e booleani, poi esercitati con le condizioni nel corso Python.
Domande frequenti
Qual è un esempio di booleano?
5 > 3 è un'espressione booleana, e il suo valore è True. Una variabile come is_logged_in = False contiene un valore booleano. Nel catalogo di una biblioteca, la ricerca cats AND dogs è una query booleana che usa la stessa logica.Un booleano vale 1 o 0?
True == 1 è True, e in C qualsiasi numero diverso da zero conta come vero. Java li tiene separati: un boolean Java non può essere usato come numero in nessun caso.Un booleano è solo sì o no?
Cos'è un booleano in Python?
bool, e i suoi due valori sono True e False, scritti con l'iniziale maiuscola. bool è una sottoclasse di int, quindi True si comporta come 1 nei calcoli. La funzione bool() converte qualsiasi valore in True o False secondo le regole di verità di Python.Cos'è una ricerca booleana?
python AND tutorial richiede entrambe le parole, python OR java accetta l'una o l'altra, e python NOT snake esclude le pagine con la seconda parola. I cataloghi delle biblioteche e le banche dati di ricerca la supportano direttamente, e Google accetta OR e il segno meno per NOT.