J'ai un problème avec l'utilisation d'une liste dans un "if-statement". Voilà une partie du code pour mieux comprendre :
n = -1
for i in dna_str:
n += 1
l = len(dna_str[n])
for c in sq:
j += 1
if sq[j:j+l] == dna_str[n]:
Ici le dna_str[n] est un string et la variable l est un int j(ai vérifié via type()). Or ce code ne fonctionne pas. Alors que si je remplace n par un nombre, le même que ce qu'il devrait être à ce moment là dans la boucle, le code fonctionne...
Auriez-vous des idées, des solutions à mon problème ?
Je veux comparer dna_str[n] avec une partie de sq comprise dans les bornes [j:j+l].
Plus haut dans le code je stocke des strings dans dna_str. Dans cette boucle, j'ai bien accès à ces strings car quand je print(dna_string[n]), j'ai bien un résultat, de même que pour len(dna_str[n]).
Or dans ce IF, ni l ni dna_str ne fonctionne lors de la comparaison.
Alors que si je remplace n par un nombre, le même que ce qu'il devrait être à ce moment là dans la boucle, le code fonctionne...
Auriez-vous des idées, des solutions à mon problème ?
On peut supposer que si ça marche en remplaçant n par la valeur qu'il devrait avoir, alors c'est que la variable n dans le programma n'a pas la valeur qu'elle devrait ?
Pour vérifier si n a bien les bonnes valeurs, tu peux juste l'afficher avec un print.
La solution était dans la variable j. Plus loin dans le code j'oubliais de remettre j à sa valeur initiale. sq[j:j+l] allait donc plus loin que prévu...
La solution était dans la variable j. Plus loin dans le code j'oubliais de remettre j à sa valeur initiale. sq[j:j+l] allait donc plus loin que prévu...
Merci à tous pour votre aide !
Ha bon, ma boule de cristal a fonctionné ... Tu pourras t'attaquer au génome du Covid-19 maintenant
Le Tout est souvent plus grand que la somme de ses parties.
Utilisation d'une liste dans un IF
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.
Blond, bouclé, toujours le sourire aux lèvres...
Le Tout est souvent plus grand que la somme de ses parties.
Blond, bouclé, toujours le sourire aux lèvres...
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Python c'est bon, mangez-en.
Le Tout est souvent plus grand que la somme de ses parties.
Python c'est bon, mangez-en.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.