×

Esercizio con Python: Convertitore di temperatura

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

  1. Lavorare con input e output.
  2. Applicare formule matematiche semplici.
  3. 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

  1. Funzioni di conversione:
    • celsius_to_fahrenheit e fahrenheit_to_celsius eseguono le rispettive conversioni matematiche.
  2. Menu interattivo:
    • L’utente sceglie tra le due opzioni di conversione.
    • La scelta viene validata per accettare solo 1 o 2.
  3. Gestione degli errori:
    • Gli input vengono verificati per assicurarsi che siano numerici.
  4. 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.