J'ai un fichier texte dans le format suivant:Fonction ne fonctionne pas correctement dans la boucle for - Python
AAAAATTTTTT
AAATTTTTTGGG
TTTDDDCCVVVVV
Je suis en train de calculer le nombre d'occurrences d'un caractère en séquence au début et à la fin de la ligne.
J'ai écrit la fonction suivante:
def getStartEnd(sequence):
start = sequence[0]
end = sequence[-1]
startCount = 0
endCount = 0
for char in sequence:
if char == start:
startCount += 1
if (char != start):
break
for char in reversed(sequence):
if char == end:
endCount += 1
if (char != end):
break
return startCount, endCount
Cette fonction fonctionne de manière indépendante sur les chaînes. Pour .: par exemple
seq = "TTTDDDCCVVVVV"
a,b = getStartEnd(seq)
print a,b
Mais quand j'insérer dans une boucle, il donne la valeur correcte uniquement sur la dernière ligne du fichier.
file = open("Test.txt", 'r')
for line in file:
a,b = getStartEnd(str(line))
print a, b
Merci beaucoup. Que diriez-vous de mon code? Est-ce un moyen élégant? – gthm
@ gthmgeeky, De rien. Votre code ressemble à du code C;) – falsetru
Je veux compter le premier caractère en séquence. Par exemple: AAAATTAGGAGGG, la lettre de départ A se produit 4 fois, et la lettre de fin G se produit 3 fois dans l'ordre continu. – gthm