1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# -*- coding: utf-8 -*-
def traduit(chaine):
"""cette méthode vérifie la validité de la chaîne en fonction de sa provenance et, au besoin, transforme des expressions possibles (10^11) en grandeur acceptée par python"""
# on force le type chaîne pour pouvoir faire des évaluations.
chaine=str(chaine).replace(" ","") # et retrait de tous les espaces
#vérification de la présence d'un float correct, sinon tente des modifs.
try :
chaine=float(eval(chaine))
except :
chaine=chaine.replace("10^","e")
#remplace la chaine 10^ par e
else:
return chaine
try :
chaine=float(eval(chaine))
except :
#remplace les "x" pour la multiplication
chaine=chaine.replace("x","*")
chaine=chaine.replace("X","*")
else:
return chaine
try :
chaine=float(eval(chaine))
except :
#remplace les "*" devant un "e"
chaine=chaine.replace("*e","e")
else:
return chaine
try :
chaine=float(eval(chaine))
except :
#self.debug(0,u"Erreur : %s, même après les tranformations, n'est pas une expression acceptable" %chaine)
return 1.0
else:
return chaine
return 1.0
|