pb avec la fonction raw_input
bonjour,
j'ai dans mon programme la fonction raw_input, je dois entrer une valeur qui peut-être de ces différents types : 5M, 5e6, 500000 qui donnent tous les même résultats, dans mon prog, je dis que si c'est 5M qui est entré donc ça devient 5e6 en float, mais si je rentre la vrai valeur, ben mon programme plante. j'ai fait une condition sur le type qui est entré avec le raw_input, et quelque soit l'entrée 5M ou 5e6, le programme me renvoie type<str>.
j'ai voulu faire une condition, mais je ne sais pas comment l'écrire :
la condition serait que si mon entrée peut se transformer en float, alors condition 1, si l'entrée ne peut pas être transformer en float, alors deuxième condition...
voici l'exemple de mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| startF = raw_input("Fréquence de départ : ( cliquer sur <ENTER> pour valider ) ")
chk = "k"
lcStartF = len(startF)-1
typStartF = float(startF)
if typStartF == float() :
print 'condition1'
valFdeb = float(startF)
else :
if startF[lcStartF:] == chk :
print 'condition2'
valFdeb = float(startF[:lcStartF])*1e3
print 'valeur de départ', valFdeb |
si je rentre 5 voilà ce que j'ai :
Code:
1 2 3 4 5 6 7
| Fréquence de départ : ( cliquer sur <ENTER> pour valider ) 5
valeur de départ
Traceback (most recent call last):
File "T:/Mesure dimensionnelle Paramètre S/Programme Python/freq test.py", line 17, in <module>
print 'valeur de départ', valFdeb
NameError: name 'valFdeb' is not defined |
en un mot le prog ne rentre pas dans la condition 1
si je rentre 5k
Code:
1 2 3 4 5 6
| Fréquence de départ : ( cliquer sur <ENTER> pour valider ) 5k
Traceback (most recent call last):
File "T:/Mesure dimensionnelle Paramètre S/Programme Python/freq test.py", line 8, in <module>
typStartF = float(startF)
ValueError: invalid literal for float(): 5k |
donc blocage dès le départ...
je retourne le truc dans tous les sens, mais je ne vois pas comment faire.
Merci pour votre aide
PAtricia