Python: gestire le presenze a un evento con numeri, stringhe e booleani

by theArchitect
SHARE
Python: gestire le presenze a un evento con numeri, stringhe e booleani
© Guida-HTML5.it

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 come n.
  • Distingui quantità e prezzi: usa interi per conteggi e numeri decimali per valori economici o misure frazionarie.
  • Non confondere stringhe e booleani: "True" è testo, mentre True è un valore logico. Sono tipi diversi.
  • Formatta i risultati destinati all’utente: il formato :.2f rende i prezzi più leggibili.
  • Evita condizioni ridondanti: preferisci if evento_attivo: a if evento_attivo == True:.
  • Calcola una volta, riutilizza il risultato: memorizzare valori come numero_iscritti e posti_liberi rende il codice più chiaro.
  • Presta attenzione ai numeri decimali: per applicazioni finanziarie reali, il tipo float può introdurre piccole imprecisioni. In questi casi è opportuno valutare il modulo standard decimal.

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 int e float.
  • Stringhe: approfondisci il tipo str, i metodi disponibili e le f-string.
  • Booleani: studia il tipo bool e il funzionamento degli operatori di confronto.
  • Controllo del flusso: consulta la guida ufficiale sulle istruzioni if, for e while.
  • Documentazione ufficiale: visita docs.python.org/it/3/ per la documentazione di Python in lingua italiana.

SHARE