Introduzione
Quando si organizza un evento, anche una piccola applicazione può aiutare a registrare i partecipanti, controllare i posti disponibili e stabilire se una persona ha effettivamente effettuato il check-in. Questo scenario è utile per capire come utilizzare insieme i principali tipi di dati di Python: numeri, stringhe e booleani.
In Python, i numeri possono rappresentare quantità come il numero massimo di posti, il prezzo di un biglietto o il totale delle persone presenti. Le stringhe contengono informazioni testuali, ad esempio il nome dell’evento o quello di un partecipante. I booleani, invece, possono assumere soltanto due valori: True e False. Sono ideali per indicare condizioni come “check-in effettuato” oppure “posto disponibile”.
Realizzeremo un piccolo programma che registra alcuni partecipanti, calcola quanti posti sono ancora liberi e stampa un riepilogo leggibile. L’esempio utilizza esclusivamente strutture semplici, così da concentrarsi sui tipi di dati di base.
Codice completo
# Informazioni generali sull´evento
nome_evento = "Workshop Python per principianti"
capienza_massima = 40
prezzo_biglietto = 15.50
evento_attivo = True
# Elenco dei partecipanti.
# Ogni partecipante è rappresentato da una stringa e da un booleano.
partecipanti = [
{"nome": "Anna Rossi", "check_in": True},
{"nome": "Luca Bianchi", "check_in": True},
{"nome": "Marta Verdi", "check_in": False},
{"nome": "Paolo Neri", "check_in": True},
]
# Il numero di iscritti è un intero
numero_iscritti = len(partecipanti)
# Calcoliamo quanti partecipanti sono effettivamente presenti
numero_presenti = 0
for partecipante in partecipanti:
if partecipante["check_in"]:
numero_presenti += 1
# I posti liberi si calcolano sottraendo gli iscritti dalla capienza
posti_liberi = capienza_massima - numero_iscritti
# Ricavo totale basato sul numero degli iscritti
ricavo_totale = numero_iscritti * prezzo_biglietto
print(f"Evento: {nome_evento}")
print(f"Evento attivo: {evento_attivo}")
print(f"Capienza massima: {capienza_massima}")
print(f"Iscritti: {numero_iscritti}")
print(f"Presenti al check-in: {numero_presenti}")
print(f"Posti ancora disponibili: {posti_liberi}")
print(f"Ricavo previsto: {ricavo_totale:.2f} euro")
print("nDettaglio partecipanti:")
for partecipante in partecipanti:
nome = partecipante["nome"]
ha_fatto_check_in = partecipante["check_in"]
if ha_fatto_check_in:
stato = "presente"
else:
stato = "non ancora arrivato"
print(f"- {nome}: {stato}")
# Controllo finale basato su un valore booleano
evento_completo = posti_liberi == 0
if evento_completo:
print("nL´evento ha raggiunto la capienza massima.")
else:
print("nÈ ancora possibile iscriversi.") Spiegazione
Numeri interi e decimali
La variabile capienza_massima contiene il numero intero 40. Gli interi in Python appartengono al tipo int e sono adatti per quantità senza frazioni, come il numero di persone o dei posti disponibili.
La variabile prezzo_biglietto, invece, contiene il valore 15.50. Si tratta di un numero decimale, appartenente al tipo float. L’operatore * viene utilizzato per moltiplicare il prezzo per il numero degli iscritti:
ricavo_totale = numero_iscritti * prezzo_biglietto Nel comando di stampa viene usato :.2f, che formatta il risultato mostrando sempre due cifre decimali. Per esempio, 62.0 diventa 62.00.
Stringhe per rappresentare testo
nome_evento e i nomi dei partecipanti sono stringhe, cioè valori di tipo str. Le stringhe sono racchiuse tra virgolette singole o doppie. Nel programma utilizziamo le f-string, precedute dalla lettera f, per inserire variabili all’interno di un testo:
print(f"Evento: {nome_evento}") Le f-string rendono il codice più leggibile rispetto alla concatenazione manuale. È inoltre possibile inserire direttamente espressioni semplici, anche se per calcoli più complessi è preferibile preparare prima una variabile con un nome descrittivo.
Booleani e condizioni
La variabile evento_attivo contiene il valore booleano True. Ogni partecipante possiede un campo check_in, anch’esso booleano. Quando il valore è True, il partecipante risulta presente; quando è False, non ha ancora effettuato il check-in.
La condizione:
if partecipante["check_in"]: controlla direttamente il valore booleano. Non è necessario scrivere == True: la forma più breve è anche quella più idiomatica in Python.
Conteggio e confronto
La variabile numero_presenti inizia da zero e viene incrementata ogni volta che viene trovato un partecipante con il check-in effettuato. L’istruzione numero_presenti += 1 equivale a scrivere numero_presenti = numero_presenti + 1.
Infine, l’espressione:
evento_completo = posti_liberi == 0 produce un booleano. Se i posti liberi sono esattamente zero, evento_completo vale True; altrimenti vale False. Gli operatori di confronto, come ==, e , restituiscono sempre un valore booleano.
Best practice
- Usa nomi descrittivi:
numero_presentiè più comprensibile di un nome generico comen. - Distingui quantità e prezzi: usa interi per conteggi e numeri decimali per valori economici o misure frazionarie.
- Non confondere stringhe e booleani:
"True"è testo, mentreTrueè un valore logico. Sono tipi diversi. - Formatta i risultati destinati all’utente: il formato
:.2frende i prezzi più leggibili. - Evita condizioni ridondanti: preferisci
if evento_attivo:aif evento_attivo == True:. - Calcola una volta, riutilizza il risultato: memorizzare valori come
numero_iscrittieposti_liberirende il codice più chiaro. - Presta attenzione ai numeri decimali: per applicazioni finanziarie reali, il tipo
floatpuò introdurre piccole imprecisioni. In questi casi è opportuno valutare il modulo standarddecimal.
Riepilogo
In questo esempio abbiamo combinato i principali tipi di dati di Python in un contesto realistico. Gli interi hanno rappresentato la capienza, il numero degli iscritti e i posti disponibili. Il numero decimale ha rappresentato il prezzo del biglietto e il ricavo previsto. Le stringhe hanno contenuto i nomi e le descrizioni dell’evento. I booleani hanno indicato se l’evento era attivo, se un partecipante aveva effettuato il check-in e se la capienza era stata raggiunta.
La capacità di scegliere il tipo di dato corretto è fondamentale: rende le operazioni più naturali, previene errori e migliora la leggibilità del programma. Una volta compresi questi elementi, sarà più semplice lavorare con strutture dati avanzate, funzioni e applicazioni che ricevono informazioni dall’esterno.
Approfondisci con risorse ufficiali
- Tipi numerici: consulta la documentazione Python sui tipi
intefloat. - Stringhe: approfondisci il tipo
str, i metodi disponibili e le f-string. - Booleani: studia il tipo
boole il funzionamento degli operatori di confronto. - Controllo del flusso: consulta la guida ufficiale sulle istruzioni
if,forewhile. - Documentazione ufficiale: visita
docs.python.org/it/3/per la documentazione di Python in lingua italiana.
