Introduzione
Un modo concreto per imparare i tipi di dati di base in Python è costruire un piccolo programma che analizzi il consumo energetico di un dispositivo. In questo scenario utilizzeremo tre categorie fondamentali:
- Numeri, per rappresentare i watt consumati, le ore di utilizzo e il costo dell’energia.
- Stringhe, per memorizzare il nome del dispositivo e produrre messaggi leggibili.
- Booleani, per indicare se il consumo supera una soglia stabilita.
L’obiettivo è stimare il consumo giornaliero e mensile di un elettrodomestico, calcolando anche il relativo costo. Il programma mostrerà inoltre un avviso quando il dispositivo risulta particolarmente energivoro.
Questo esempio è utile perché combina dichiarazione di variabili, operazioni aritmetiche, confronti, conversioni numeriche e formattazione delle stringhe, senza introdurre ancora strutture dati complesse.
Codice completo
# Nome del dispositivo: stringa
dispositivo = "Stufa elettrica"
# Potenza del dispositivo in watt: numero intero
potenza_watt = 1500
# Ore di utilizzo giornaliere: numero decimale
ore_al_giorno = 4.5
# Costo di un kilowattora in euro: numero decimale
costo_kwh = 0.28
# Soglia oltre la quale consideriamo alto il consumo giornaliero
soglia_kwh = 5.0
# Conversione della potenza da watt a kilowatt
potenza_kw = potenza_watt / 1000
# Calcolo del consumo giornaliero
consumo_giornaliero = potenza_kw * ore_al_giorno
# Stima del consumo mensile su 30 giorni
consumo_mensile = consumo_giornaliero * 30
# Calcolo del costo giornaliero e mensile
costo_giornaliero = consumo_giornaliero * costo_kwh
costo_mensile = consumo_mensile * costo_kwh
# Espressione booleana: True se il consumo supera la soglia
consumo_alto = consumo_giornaliero > soglia_kwh
print(f"Dispositivo: {dispositivo}")
print(f"Potenza: {potenza_watt} W")
print(f"Utilizzo medio: {ore_al_giorno} ore al giorno")
print(f"Consumo giornaliero: {consumo_giornaliero:.2f} kWh")
print(f"Consumo mensile stimato: {consumo_mensile:.2f} kWh")
print(f"Costo giornaliero: {costo_giornaliero:.2f} euro")
print(f"Costo mensile stimato: {costo_mensile:.2f} euro")
if consumo_alto:
print("Attenzione: il consumo giornaliero supera la soglia.")
else:
print("Il consumo giornaliero è entro la soglia prevista.") Spiegazione
Numeri interi e decimali
La variabile potenza_watt contiene il valore 1500, un numero intero, chiamato in Python int. La potenza viene normalmente indicata in watt, ma per calcolare i kilowattora è necessario convertirla in kilowatt:
potenza_kw = potenza_watt / 1000 L’operatore / esegue una divisione e restituisce normalmente un numero decimale, cioè un valore di tipo float. Per esempio, 1500 watt diventano 1.5 kilowatt.
La variabile ore_al_giorno contiene invece il valore 4.5. Il consumo si calcola moltiplicando la potenza in kilowatt per il numero di ore di utilizzo:
consumo_giornaliero = potenza_kw * ore_al_giorno Il simbolo * rappresenta la moltiplicazione. Python supporta anche altre operazioni aritmetiche importanti:
+per la somma;-per la sottrazione;*per la moltiplicazione;/per la divisione;//per la divisione intera;%per il resto della divisione;**per l’elevamento a potenza.
Stringhe e messaggi leggibili
La variabile dispositivo contiene una stringa, cioè una sequenza di caratteri racchiusa tra virgolette. Le stringhe sono adatte per nomi, descrizioni, etichette e messaggi.
Nel programma vengono utilizzate le f-string, introdotte anteponendo la lettera f alla stringa:
print(f"Dispositivo: {dispositivo}") Le parentesi graffe permettono di inserire direttamente il valore di una variabile nel testo. Questa tecnica è più leggibile rispetto alla concatenazione manuale con l’operatore +.
Nei risultati numerici è presente anche la specifica :.2f:
print(f"Costo mensile stimato: {costo_mensile:.2f} euro") Questa formattazione visualizza il numero con due cifre decimali. È particolarmente utile per prezzi, costi e misure che devono essere presentate in modo ordinato.
Booleani e condizioni
La variabile consumo_alto contiene un valore booleano. In Python i booleani possono essere soltanto True oppure False:
consumo_alto = consumo_giornaliero > soglia_kwh L’espressione confronta il consumo effettivo con la soglia. Se il consumo è maggiore della soglia, il risultato sarà True; altrimenti sarà False.
Il valore booleano viene poi utilizzato da un’istruzione condizionale:
if consumo_alto:
print("Attenzione: il consumo giornaliero supera la soglia.")
else:
print("Il consumo giornaliero è entro la soglia prevista.") È importante rispettare l’indentazione. In Python il blocco appartenente a if e else viene identificato dagli spazi iniziali, normalmente quattro.
Best practice
- Usa nomi descrittivi:
consumo_mensileè più comprensibile di un nome generico comex. - Mantieni coerenti le unità di misura: converti i watt in kilowatt prima di calcolare i kilowattora.
- Evita numeri “magici” sparsi nel codice: assegnare
30a un contesto mensile o5.0a una soglia rende il programma più facile da modificare. - Formatta i risultati: per costi e misure decimali, usare due cifre rende l’output più professionale.
- Non confondere
=e==: il primo assegna un valore, mentre il secondo confronta due valori. - Considera la precisione dei float: i numeri decimali possono avere piccole imprecisioni interne. Per un’applicazione finanziaria reale si potrebbe valutare il modulo
decimal. - Commenta solo ciò che serve: i commenti devono chiarire le intenzioni del codice, non ripetere ogni singola istruzione.
Una possibile estensione consiste nel confrontare più dispositivi oppure nel permettere all’utente di inserire potenza e ore di utilizzo tramite input(). In quel caso, i dati ricevuti sarebbero stringhe e dovrebbero essere convertiti con int() o float() prima dei calcoli.
Riepilogo
In questo progetto abbiamo usato i tipi di dati fondamentali di Python in un contesto realistico. I numeri hanno permesso di eseguire conversioni e calcoli sul consumo energetico. Le stringhe hanno descritto il dispositivo e costruito messaggi di output chiari. I booleani hanno rappresentato il risultato di un confronto e guidato una decisione tramite if ed else.
La combinazione di questi tre tipi costituisce una base essenziale per programmi più completi: sistemi di monitoraggio, pannelli informativi, strumenti di analisi e applicazioni domestiche intelligenti.
