J'ai beaucoup de formulaire de données que je veux faire passer des points flottants dans une autre fonction. Pour ce faire, j'ai créé une fonction Lsym (s, n, N = '11a') qui fait le travail pour moi en partie. Je veux accéder aux points flottant sur la droite des données ci-dessousAccéder à une partie des données à l'aide d'une fonction?
Lsym['11a'][1][2]=1.057599244591
Lsym['11a'][2][2]=1.127354242069
Lsym['11a'][3][2]=1.090644807038
Lsym['11a'][4][2]=1.052410518255
Lsym['11a'][5][2]=1.02815187087
Lsym['11a'][2][4]=0.8209366139554
Lsym['11a'][3][4]=0.8949278089063
Lsym['11a'][4][4]=0.9429984866328
Lsym['11a'][5][4]=0.970256549013
Lsym['11a'][3][6]=0.8929614099822
Lsym['11a'][4][6]=0.9434221639356
Lsym['11a'][5][6]=0.970721596782
Lsym['11a'][4][8]=1.053427474878
Lsym['11a'][5][8]=1.02816330898
Lsym['11a'][5][10]=1.03597753138
.....
Le code que je l'ai écrit est
def Lsym(s,n,N = '11a'):
f = open("path",'r')
for item in f:
if item.split('=')[0][6:-8] == N:
if s == int(item.split('=')[0][-5]):
if n == int(item.split('=')[0][-2]):
id1 = float(item.split('=')[1][:-1])
if n == int(item.split('=')[0][15:17]):
id1 = float(item.split('=')[1][:-1])
return id1
La sortie de c'est
sage: Lsym(1,2)
sage: 1.057599244591
sage: Lsym(3,6)
sage: 0.8929614099822
Cependant quand j'appelle
sage: Lsym(5,10)
ValueError: invalid literal for int() with base 10: '2]'
Comment résoudre ce problème? Ou y a-t-il un meilleur moyen d'accéder à ces valeurs flottantes? En particulier, comment puis-je accéder à
Lsym(5,10)?
Merci pour le temps et l'aide.
Probablement parce qu'il est deux chiffres –
Oui, c'est pourquoi j'ai une autre affaire pour si n == int (item.split ('=') [0] [15:17]): mais il ne marche pas toujours travail. – Kumarm