Python (école d'ingénieur) · Chapitre 7 · Exercice
Exception personnalisée
Fichiers, exceptions et modules
Énoncé
Créer une exception personnalisée TemperatureInvalideError et l'utiliser dans une fonction convertir_celsius_en_fahrenheit(celsius) qui refuse les températures inférieures au zéro absolu (°C).
# Définition de l'exception personnalisée
class TemperatureInvalideError(Exception):
"""Exception levée lorsqu'une température est inférieure au zéro absolu."""
def __init__(self, celsius, message="Température inférieure au zéro absolu (-273.15°C)"):
self.celsius = celsius
self.message = message
super().__init__(self.message)
def convertir_celsius_en_fahrenheit(celsius):
"""
Convertit une température de Celsius en Fahrenheit.
Lève TemperatureInvalideError si celsius < -273.15.
"""
ZERO_ABSOLU = -273.15
if celsius < ZERO_ABSOLU:
raise TemperatureInvalideError(celsius,
f"Température {celsius}°C inférieure au zéro absolu ({ZERO_ABSOLU}°C)")
return celsius * 9/5 + 32
# Test de la fonction
def test_conversion():
temperatures = [0, 100, -273.15, -300]
for t in temperatures:
try:
f = convertir_celsius_en_fahrenheit(t)
print(f"{t}°C = {f}°F")
except TemperatureInvalideError as e:
print(f"Erreur : {e}")
print(f"Valeur reçue : {e.celsius}°C")
test_conversion()Corrigé
Le test affiche :
0°C = 32.0°F
100°C = 212.0°F
-273.15°C = -459.66999999999996°F
Erreur : Température -300°C inférieure au zéro absolu (-273.15°C)
Valeur reçue : -300°C100 % gratuit
La suite du chapitre est sur Adloun
- 5 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.