Booleani
Booleani¶
Obiettivi della Lezione¶
- Comprendere il concetto di tipo di dato booleano in Python.
- Imparare a utilizzare i valori booleani
True
eFalse
. - Conoscere gli operatori logici e il loro utilizzo con i booleani.
- Applicare i valori booleani nelle strutture di controllo come
if
,while
, efor
.
Introduzione¶
I booleani sono uno dei tipi di dati fondamentali in Python e nella programmazione in generale. Rappresentano i due valori di verità possibili: vero o falso. Questi valori sono essenziali per prendere decisioni all’interno di un programma, controllare il flusso di esecuzione e valutare espressioni logiche. In questa lezione, esploreremo il concetto di booleani, come utilizzarli e come influenzano la logica del tuo codice.
is_sunny = True
is_raining = False
Utilizzo dei Booleani¶
I booleani sono spesso il risultato di operazioni di confronto o espressioni logiche. Ad esempio:
- Operatori di confronto:
==
(uguale a)!=
(diverso da)>
(maggiore di)<
(minore di)>=
(maggiore o uguale a)<=
(minore o uguale a)
print(5 > 3) # Output: True
print(2 == 4) # Output: False
True False
Operatori Logici¶
Gli operatori logici permettono di combinare più condizioni:
and
(e logico): vero se tutte le condizioni sono vere.or
(o logico): vero se almeno una delle condizioni è vera.not
(negazione logica): inverte il valore booleano.
Esempi:
x = 5
y = 10
print(x > 3 and y < 15) # Output: True
print(x > 10 or y < 15) # Output: True
print(not x == 5) # Output: False
True True False
Valori Considerati Veri o Falsi¶
In Python, non solo True
o False
sono considerati valori booleani. Nelle espressioni condizionali, alcuni valori sono valutati come False
, detti “falsy”, mentre tutti gli altri sono valutati come True
, detti “truthy”.
Valori “Falsy”:
False
None
- Zero di qualsiasi tipo numerico:
0
,0.0
,0j
- Sequenze o collezioni vuote:
''
,()
,[]
,{}
- Oggetti personalizzati che definiscono
__bool__()
o__len__()
e restituisconoFalse
o0
Esempio:
empty_list = []
if not empty_list:
print("La lista è vuota.") # Questo verrà stampato
La lista è vuota.
age = 20
if age >= 18:
print("Sei maggiorenne.")
else:
print("Sei minorenne.")
Sei maggiorenne.
Spiegazione:
- Verifichiamo se la variabile
age
è maggiore o uguale a 18. - Se la condizione è
True
, stampiamo “Sei maggiorenne.” - Altrimenti, stampiamo “Sei minorenne.”
Esempio 2: Login Semplificato¶
username = "admin"
password = "1234"
if username == "admin" and password == "1234":
print("Accesso consentito.")
else:
print("Accesso negato.")
Accesso consentito.
Spiegazione:
- Controlliamo se sia
username
chepassword
corrispondono ai valori attesi. - Usiamo l’operatore
and
per assicurarci che entrambe le condizioni sianoTrue
.
Esempio 3: Uso di not
¶
is_active = False
if not is_active:
print("L'account non è attivo.")
L'account non è attivo.
Spiegazione:
- Utilizziamo
not
per invertire il valore diis_active
. - Poiché
is_active
èFalse
,not is_active
saràTrue
, e quindi il messaggio verrà stampato.
numero = int(input("Inserisci un numero intero: "))
if numero % 2 == 0:
print("Il numero è pari.")
else:
print("Il numero è dispari.")
Inserisci un numero intero: 3 Il numero è dispari.
Esercizio 2: Accesso all’Evento¶
Un evento è aperto solo a persone tra i 18 e i 30 anni. Chiedi all’utente la sua età e determina se può accedere all’evento.
Soluzione:
eta = int(input("Inserisci la tua età: "))
if eta >= 18 and eta <= 30:
print("Puoi accedere all'evento.")
else:
print("Non puoi accedere all'evento.")
Inserisci la tua età: 29 Puoi accedere all'evento.
Esercizio 3: Verifica della Password¶
Chiedi all’utente di inserire una password. Verifica che la password abbia almeno 8 caratteri e contenga il carattere “@”.
Soluzione:
password = input("Inserisci una password: ")
if len(password) >= 8 and "@" in password:
print("Password valida.")
else:
print("Password non valida. Assicurati che abbia almeno 8 caratteri e contenga '@'.")
Inserisci una password: MyNameIsM@rco Password valida.
Buone Pratiche e Consigli¶
Usa Nomi Significativi per le Variabili Booleane
Scegli nomi di variabili che riflettano chiaramente il loro significato logico.
is_logged_in = True has_permission = False
Evita Confronti Inutili con
True
oFalse
Invece di scrivere
if is_active == True:
, è più pythonico scrivereif is_active:
.Sfrutta le Valutazioni Implicite
Poiché alcuni valori sono considerati
False
, puoi scrivere condizioni più concise.# Invece di if len(my_list) == 0: print("Lista vuota.") # Puoi scrivere if not my_list: print("Lista vuota.")
Parentesi per Chiarezza nelle Espressioni Complesse
Quando usi più operatori logici, utilizza le parentesi per rendere il codice più leggibile.
if (condition_a and condition_b) or condition_c: # Codice da eseguire
Ricorda la Precedenza degli Operatori
Gli operatori logici hanno una precedenza specifica:
not
viene valutato per primo, poiand
, e infineor
.
Conclusione¶
I booleani sono fondamentali per la logica di qualsiasi programma. Comprendere come funzionano i valori di verità, gli operatori logici e come Python valuta le espressioni ti permetterà di scrivere codice più efficiente, leggibile e privo di errori. Pratica l’uso dei booleani negli esercizi quotidiani per consolidare la tua comprensione.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Boolean Values
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: Conditionals and Booleans – If, Else, and Elif Statements