J'ai écrit, via la bibliothèque wxPython, une petite calculatrice.
L'utilisateur rentre sa formule dans un champ et le programme calcule
alors le résultat et l'affiche dans le même champ.
Je récupère la relation de l'utilisateur sous forme d'une chaîne de
caractères et j'utilise ensuite la fonction eval pour calculer le résultat.
Cette technique me pose un soucis dans le cas suivant : supposons que
l'utilisateur saisisse '1/2':
>>> eval('1/2')
0
>>>
Ce résultat, tout-à-fait normal, est tout de même très surprenant pour
l'utilisateur qui s'attendait au résultat 0.5. Il aurait fallu entrer:
>>> eval('1./2')
0.5
>>>
Le fait de demander à l'utilisateur de saisir les entiers avec un point
n'est pas pratique et peut être source d'erreurs s'il ne le fait pas. Je
souhaite donc automatiser la vérification de la relation saisie par
l'utilisateur.
La question que je vous pose est donc la suivante : comment pourrais-je
faire pour que, avant d'utiliser 'eval', tous les entiers contenus dans
la chaîne de caractères soient convertis en réel (en ajoutant un '.')?