def contains_sequence(dna1, dna2):
''' (str, str) -> bool
Return True if and only if DNA sequence dna2 occurs in the DNA sequence
dna1.
>>> contains_sequence('ATCGGC', 'GG')
True
>>> contains_sequence('ATCGGC', 'GT')
False
'''
b=False
len2=len(dna2)
i=0
for j in dna1:
temp=dna1[i:i+len2]
if temp == dna2:
b=True
i=i+1
return b
Je suis nouveau sur Python. Le programme collé ci-dessus me donne une erreur "Utilisation incohérente des tabulations et des espaces dans l'indentation" à la ligne "si temp == dna2:" spécifiquement. Quelqu'un peut-il m'aider s'il vous plaît à découvrir comment l'indentation est incorrecte?
Cela signifie que vous avez mélangé des espaces et des onglets dans l'indentation. Vous devez corriger cela pour être cohérent avec les tabulations ou les espaces.
Si vous regardez attentivement les lignes
temp=dna1[i:i+len2]
if temp == dna2:
dans votre code, vous verrez que "l'espace" au début de chaque ligne est "construit" différemment. Dans un cas, il utilise des onglets et dans les autres espaces, ou, si les deux ont des onglets et des espaces, ils sont utilisés dans des combinaisons différentes.
Vous pouvez examiner cela en plaçant votre curseur au début de chaque ligne et en utilisant la touche flèche droite pour "parcourir" votre chemin à travers les caractères. Vous verrez que le curseur se déplace différemment sur chaque ligne.
Pour résoudre ce problème, supprimez les tabulations et les espaces au début de chaque ligne et ré-insérez-les avec les mêmes caractères sur chaque ligne.
Pour éviter à l'avenir, apprenez à utiliser uniquement la touche de tabulation OR la touche d'espacement à mettre en retrait et envisagez de configurer votre éditeur pour qu'il convertisse automatiquement les tabulations en espaces.
En supposant que vous ayez un "bon" IDE, il est préférable de définir la clé de tabulation de manière à créer 4 espaces au lieu d'un "tab", de cette manière, vous aurez moins de problèmes, et c'est une bonne pratique, car vous travaillerez avec d'autres personnes.
Selon les chaînes de votre doc
votre code:
b=False
len2=len(dna2)
i=0
for j in dna1:
temp=dna1[i:i+len2]
if temp == dna2:
b=True
i=i+1
return b
Ce code beaucoup Big peut être simplifié à une ligne
return dna1.find(dna2)>=0
Aussi, si vous n'êtes pas bon avec les empreintes dans l'éditeur 'vim', il est bon de s'exercer dans IDLE3