Esercizio con Python: Convertitore di temperatura
Descrizione
Scrivi un programma che converta una temperatura da Celsius a Fahrenheit e viceversa. L’utente può scegliere quale conversione eseguire.
Obiettivo
- Lavorare con input e output.
- Applicare formule matematiche semplici.
- Implementare strutture di controllo come condizioni e cicli.
Codice
def celsius_to_fahrenheit(celsius):
return (celsius * 9/5) + 32
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
def convertitore_temperatura():
print("Benvenuto nel convertitore di temperatura!")
print("Scegli un'opzione:")
print("1. Converti da Celsius a Fahrenheit")
print("2. Converti da Fahrenheit a Celsius")
while True:
try:
scelta = int(input("Inserisci 1 o 2: "))
if scelta not in [1, 2]:
print("Scelta non valida. Riprova.")
continue
temperatura = float(input("Inserisci la temperatura da convertire: "))
if scelta == 1:
risultato = celsius_to_fahrenheit(temperatura)
print(f"{temperatura}°C è uguale a {risultato:.2f}°F")
else:
risultato = fahrenheit_to_celsius(temperatura)
print(f"{temperatura}°F è uguale a {risultato:.2f}°C")
# Chiedi se l'utente vuole fare un'altra conversione
continua = input("Vuoi fare un'altra conversione? (s/n): ").lower()
if continua != 's':
print("Grazie per aver usato il convertitore di temperatura!")
break
except ValueError:
print("Errore: Per favore inserisci un numero valido.")
convertitore_temperatura()
Spiegazione
- Funzioni di conversione:
celsius_to_fahrenheit
efahrenheit_to_celsius
eseguono le rispettive conversioni matematiche.
- Menu interattivo:
- L’utente sceglie tra le due opzioni di conversione.
- La scelta viene validata per accettare solo
1
o2
.
- Gestione degli errori:
- Gli input vengono verificati per assicurarsi che siano numerici.
- Loop:
- Dopo ogni conversione, l’utente può scegliere se continuare o terminare.
Esercizio Extra
- Aggiungi un’opzione per convertire temperature in Kelvin.
- Implementa un’interfaccia grafica semplice usando
tkinter
.