Bonjour,

j'ai besoin d'imposer le nombre de digit derrière la virgule pour faire une recherche dans un fichier.
en fait, je cherche une valeur mesurée pour une fréquence donnée (tableau).

j'ai écrit ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
fileS21 = tkFileDialog.askopenfilename(filetypes = [("Txt", "*.txt"),("Fichier Texte","*.txt")],
                                               title = 'Sélection du fichier des mesures du S21')
Freq = []
ModS21 = []
for ligne in open(fileS21,'r'):
    tb = ligne.split('\t')
    Freq.append(tb[0])
    ModS21.append(tb[3])
del Freq[0]
print Freq
del ModS21[0]
print ModS21
 
gammeF =[1500000000, 4300000000]
listeA = [3.034, 3.036, 3.039, 3.044]
listeB = [7.004, 7.01, 7.009, 7.004]
 
for f in gammeF :
  w = 2*pi*f              #pulsation
  valf = f/1e9
  print "valf = ", valf
  lignef = Freq.index(valf)
  print "numero ligne =", lignef
donc pour la 1ère valeur de gammeF soit 1500000000, j'obtiens valf =1.5, mais dans mon tableau j'ai : 1.500000000

et au final j'obtiens l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
C:\Python25\Programme>Integration_resistivite.py
['0.100000000', '0.200000000', '0.300000000', '0.400000000', '0.500000000', '0.6
00000000', '0.700000000', '0.800000000', '0.900000000', '1.000000000', '1.100000
000', '1.200000000', '1.300000000', '1.400000000', '1.500000000', '1.600000000',
 '1.700000000', '1.800000000', '1.900000000']
['1.000248772348', '0.999530019625', '0.999166067351', '0.998686670313', '0.9992
99550984', '0.998267903740', '0.998400291998', '0.997993118794', '0.998283431448
', '0.998069369609', '0.997635895324', '0.997327631253', '0.997367551644', '0.99
7374272975', '0.997299246981', '0.996844083881', '0.996869520487', '0.9970266746
40', '0.996721031386']
valf =  1.5
Traceback (most recent call last):
  File "C:\Python25\Programme\Integration_resistivite.py", line 40, in <module>
    lignef = Freq.index(valf)
ValueError: list.index(x): x not in list
 
C:\Python25\Programme>pause
Appuyez sur une touche pour continuer...
comment dois-je faire pour résoudre mon pb ? est-ce que je dois transformer ma valeur obtenu en chaine de caractère et ensuite rechercher cette chaine dans mon tableau ?

je vous remercie par avance pour votre réponse et votre aide.

bien cordialement,

Patricia