Exercice#
Consignes#
Le but de l’exercice est d’implémenter un convertisseur d’unités de distance.
Il faut être capable de convertir des kilomètres, des milles, des yards, etc.
Le programme doit s’utiliser comme suit :
python convertisseur.py 1 km mi
Il y a trois « mots » après le nom du fichier, séparés par des espaces. On appelle ces mots les « arguments » du programme.
Ici, 1
est la valeur de départ, km
l’abréviation de l’unité de départ
et mi
l’abréviation de l’unité d’arrivée.
Voici un tableau pour vous aider :
Nom |
Abréviation |
Valeur en mètres |
---|---|---|
mètre |
m |
1 |
kilomètre |
km |
1000 |
mille |
mi |
1609.344 |
yard |
yd |
0.9144 |
Squelette#
Vous pouvez partir du code suivant :
import sys
def trouver_coefficient(unité):
return 1.0
def conversion_en_mètres(valeur, unité_de_départ):
coefficient = trouver_coefficient(unité_de_départ)
return valeur * coefficient
def conversion_depuis_mètres(valeur, unité_d_arrivée):
return 1.0
def convertir(valeur, unité_de_départ, unité_d_arrivée):
print("Conversion de", valeur, "en", unité_de_départ, "vers", unité_d_arrivée)
en_mètres = conversion_en_mètres(valeur, unité_de_départ)
résultat = conversion_depuis_mètres(en_mètres, unité_d_arrivée)
return résultat
def main():
nombre_arguments = len(sys.argv) - 1
if nombre_arguments != 3:
print("3 arguments attendus, mais", nombre_arguments, "reçu(s)")
return
valeur = float(sys.argv[1])
unité_de_départ = sys.argv[2]
unité_d_arrivée = sys.argv[3]
valeur_de_sortie = convertir(valeur, unité_de_départ, unité_d_arrivée)
print("{:.6}".format(valeur_de_sortie))
main()
Vous noterez que le programme est capable de récupérer la valeur, l’unité de départ et l’unité d’arrivée correctement, mais que le résultat est toujours égal à 1.0.
Votre objectif est de finir l’implémentation pour réaliser effectivement la conversion.
À noter : vous n’avez pas besoin de changer l’implémentation des
fonctions main()
et convertir()
, et ne vous inquiétez pas si
vous ne comprenez pas exactement ce que fait la fonction main()
, on
expliquera en détail comment elle fonctionne dans un chapitre ultérieur.
Pour terminer l’exercice, vous n’avez besoin que de modifier les
fonctions trouver_coefficient()
, conversion_en_mètres()
et
conversion_depuis_mètres()
.
À vous de jouer !