Introduzione
I tipi di dati di base in Python — numeri, stringhe e booleani — sono spesso presentati con esempi molto semplici, come calcoli o saluti. In questo tutorial li useremo in un contesto più realistico: la gestione di una prenotazione di un posto in una piccola sala eventi.
È un caso utile perché mette in gioco tre aspetti fondamentali:
- numeri per rappresentare capienza, posti occupati e durata;
- stringhe per memorizzare nome del cliente, tipo di evento e messaggi di conferma;
- booleani per indicare se una prenotazione è confermata, se ci sono posti disponibili o se serve un deposito.
L’obiettivo non è costruire un sistema completo, ma capire come combinare questi tipi di dati in modo pulito e pratico. Vedrai anche come fare conversioni tra tipi, formattare messaggi leggibili e scrivere codice chiaro, facilmente estendibile.
Codice completo
# Gestione semplice di una prenotazione per una sala eventi
# Dati numerici
capienza_totale = 50
posti_prenotati = 42
durata_evento_ore = 3
# Dati testuali
nome_cliente = "Luca Bianchi"
tipo_evento = "Workshop Python"
# Dati booleani
prenotazione_confermata = True
richiede_deposito = False
# Calcoli
posti_disponibili = capienza_totale - posti_prenotati
evento_lungo = durata_evento_ore >= 3
# Conversioni utili
posti_disponibili_testo = str(posti_disponibili)
durata_testo = str(durata_evento_ore)
# Messaggio base
messaggio = (
f"Prenotazione per {nome_cliente}n"
f"Evento: {tipo_evento}n"
f"Durata: {durata_testo} oren"
f"Posti disponibili: {posti_disponibili_testo}"
)
# Verifiche logiche
if prenotazione_confermata and posti_disponibili > 0:
stato = "confermata"
else:
stato = "non confermata"
if richiede_deposito or evento_lungo:
nota = "È richiesto un deposito o una verifica aggiuntiva."
else:
nota = "Nessun deposito richiesto."
# Controllo finale
print(messaggio)
print(f"Stato prenotazione: {stato}")
print(f"Nota: {nota}")
# Esempio di aggiornamento dei dati
posti_prenotati += 2
posti_disponibili = capienza_totale - posti_prenotati
print("nDopo l´aggiornamento:")
print(f"Posti prenotati: {posti_prenotati}")
print(f"Posti disponibili: {posti_disponibili}") Spiegazione
Il codice parte da tre gruppi di variabili, ognuno associato a un tipo di dato fondamentale.
1. Numeri: interi e operazioni aritmetiche
Le variabili capienza_totale, posti_prenotati e durata_evento_ore sono numeri interi. In Python, gli interi sono perfetti per contare elementi discreti: posti, utenti, prodotti, minuti, giorni.
La riga:
posti_disponibili = capienza_totale - posti_prenotati mostra una sottrazione classica. Questo valore è utile per capire se è possibile accettare una nuova prenotazione.
Inoltre, la riga:
evento_lungo = durata_evento_ore >= 3 usa un confronto numerico che produce un booleano. È un passaggio molto importante: spesso i numeri non servono solo per calcolare, ma anche per decidere.
2. Stringhe: testo e formattazione
Le stringhe rappresentano dati testuali come il nome del cliente e il tipo di evento. In Python sono fondamentali per costruire messaggi, etichette, log e output leggibili.
La variabile messaggio usa una f-string:
messaggio = (
f"Prenotazione per {nome_cliente}n"
f"Evento: {tipo_evento}n"
f"Durata: {durata_testo} oren"
f"Posti disponibili: {posti_disponibili_testo}"
) Le f-string sono una delle soluzioni più comode in Python per inserire variabili dentro una stringa. Sono leggibili, veloci e riducono il rischio di errori rispetto a concatenazioni manuali con +.
Nel codice abbiamo anche convertito numeri in stringhe con str(). Questo è utile quando vuoi unificare dati numerici e testuali in un messaggio.
3. Booleani: decisioni e condizioni
I booleani possono assumere solo due valori: True o False. Sono il cuore della logica di controllo.
Nel nostro esempio:
prenotazione_confermata = True
richiede_deposito = False Queste variabili descrivono lo stato della prenotazione. Poi vengono usate in condizioni come:
if prenotazione_confermata and posti_disponibili > 0: Qui entrano in gioco due verifiche contemporanee:
- la prenotazione deve essere confermata;
- devono esserci posti disponibili.
Se entrambe sono vere, lo stato diventa confermata. Altrimenti, la prenotazione non può essere considerata valida.
Un altro esempio è:
if richiede_deposito or evento_lungo: L’operatore or significa che basta una sola condizione vera per entrare nel ramo. È utile quando una regola si applica in più casi, ad esempio per eventi lunghi o prenotazioni particolari.
4. Aggiornamento dello stato
La parte finale del codice mostra un aspetto molto comune nei programmi reali: i dati cambiano nel tempo. Dopo aver aggiunto 2 posti prenotati:
posti_prenotati += 2 ricalcoliamo i posti disponibili. Questo approccio è corretto perché evita di memorizzare valori obsoleti. In pratica, meglio ricalcolare un dato derivato quando serve, invece di aggiornarlo in più punti del programma.
Best practice
- Usa nomi di variabili descrittivi:
posti_disponibiliè molto più chiaro dipd. - Separa i dati dai messaggi: conserva i numeri come numeri e convertili in stringhe solo quando devi mostrarli.
- Preferisci le f-string per formattare testo in modo leggibile e moderno.
- Ricalcola i valori derivati quando cambiano i dati di partenza, invece di aggiornarli manualmente in più punti.
- Usa i booleani per rappresentare stati chiari: confermato/non confermato, attivo/spento, disponibile/non disponibile.
- Combina con attenzione and/or: questi operatori rendono le condizioni potenti, ma vanno scritti in modo leggibile.
- Evita conversioni inutili: trasformare un numero in stringa troppo presto può complicare i calcoli successivi.
Riepilogo
In questo tutorial abbiamo visto come numeri, stringhe e booleani lavorino insieme in un caso d’uso pratico: la gestione di una prenotazione.
- I numeri servono per contare, confrontare e calcolare.
- Le stringhe servono per rappresentare informazioni leggibili e costruire messaggi.
- I booleani servono per descrivere stati e prendere decisioni con
if.
Il punto più importante da portare a casa è questo: in Python i tipi di base non sono concetti isolati, ma strumenti che collaborano continuamente. Un programma utile nasce proprio dalla combinazione di questi elementi, con conversioni mirate, condizioni chiare e output ben formattato.
Approfondisci con risorse ufficiali
- Python Documentation - Built-in Types: documentazione ufficiale sui tipi base di Python.
- Python Documentation - Numeric Types: approfondimento su interi, float e operazioni numeriche.
- Python Documentation - Text Sequence Type str: riferimento ufficiale per le stringhe.
- Python Documentation - Boolean Operations: guida agli operatori logici
and,or,not. - Python Documentation - f-strings: documentazione sulla formattazione moderna delle stringhe.
