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 !