Après je ne suis pas sur que ce tu demandes soit une bonne chose. Déjà l'utilisation de tout ce qui est variable globale est en général déconseillé dans la plupart des langage des programmation, ça rend en général les programmes plus complexe à maintenir. Je resterai donc sur ta première version du programme, ou il faut passer l'unité entre guillemets. Tu pourrais faire ce que tu veux proprement en définissant ton propre type d'unité, mais ça me parait pas utile pour une initiation.
En outre, en permettant ici d'appeler conv avec "cm" ou cm, tu entretiens pour un débutant, je pense, plus la confusion entre variable et la valeur d'une variable, et dans une optique d'apprentissage je ne suis pas certains que ce soit une bonne idée.
Autre point, on est plus en 1960 où chaque caractère compte, du coup c'est mieux d'éviter au maximum les abréviations : nomme la fonction et les variables complètement. Faut pas oublier que rapidement, dès que tu programmes, tu passes plus de temps à lire du code (le tient ou celui des autres). Du coup avoir des noms lisibles facilite grandement.
def convertir(valeur, unite_de_depart, unite_d_arrive)
Me semble plus lisible
Dernier point, si tu es sur un python récent (3.6 ou plus, python --version pour savoir) tu peux utiliser les "f-string" pour faire ton formatage de string, c'est en général plus lisible que le ".format". Ta dernière ligne devient donc :
return f"{v0}{u0} = {v1}{u1}"
(les parenthèses autour du return ne sont pas obligatoire en Python sauf si tu veux renvoyer un tuple)
|