im nouveau .. mon script est assez long donc je vais écrire les parties spécifiques.Une erreur en python
str= ''
#str is a long DNA sequence
def FIND_UPPER(str):
global x
x=str.upper()
y=0
while y>(-1):
y=x.find('CTTTGATTCCT')
z=x[y+11:y+22]
x=x[y+23:]
variability(z)
#variability is another function
FIND_UPPER(str)
puis je reçois ce message:
indices de la liste doivent être des nombres entiers, pas str
au sujet de ces lignes:
variability(z)
FIND UPPER(str)
Comment puis-je résoudre ce ? grâce
modifier: cette variabilité est:
A=[0]*10
C=[0]*10
T=[0]*10
G=[0]*10
def variability(z):
for i in z:
if i=='A':
A[i]=A[i]+1
i=i+1
elif i=='T':
T[i]=T[i]+1
i=i+1
elif i=='C':
C[i]=C[i]+1
i=i+1
elif i=='G':
G[i]=G[i]+1
i=i+1
return G
return C
return T
return A
Je l'ai fixé, u peut me dire si je suis u droit? :
def variability(z):
for i in range(len(z)):
if i=='A':
A[i]=z[i]
A[i]+=1
i+=1
elif i=='T':
T[i]=z[i]
T[i]+=1
i+=1
elif i=='C':
C[i]=z[i]
C[i]+=1
i+=1
elif i=='G':
G[i]=z[i]
G[i]+=1
i+=1
return G,C,T,A
Pourriez-vous s'il vous plaît nous montrer 'variability'? – TerryA
Et le retraçage réel montrant ce que l'erreur se réfère à.Ce n'est pas seulement un bruit inutile, il vous dit en fait comment déboguer le problème. –
Première chose: plusieurs instructions 'return' dans une fonction ne fonctionneront pas. Seul le premier sera exécuté, car il sort de la fonction. Si vous voulez retourner plusieurs choses, essayez d'utiliser un tuple. – rlms