Utilisation incohérente des tabulations et des espaces dans l'indentation
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 le Python. Le programme collé ci-dessus me donne une erreur "Incompatible utilisation des tabulations et des espaces d'indentation" à la ligne "si temp == adn2:" en particulier. Quelqu'un peut-il m'aider à trouver comment l'indentation est incorrect?
source d'informationauteur knightcool
Vous devez vous connecter pour publier un commentaire.
Cela signifie que vous avez mélangé les espaces et tabulations dans la mise en retrait. Vous devez les fixer que pour être cohérent avec soit des tabulations ou des espaces.
Si vous regardez attentivement les lignes
dans votre code, vous verrez que "l'espace" au début de chaque ligne est "construit" d'une manière différente. Dans un cas, on utilise des onglets et dans les autres espaces, ou, si les deux ont des tabulations et des espaces alors qu'ils sont utilisés dans des combinaisons différentes.
Vous pouvez vérifier ceci en plaçant votre curseur au début de chaque ligne, et en utilisant la touche flèche droite pour "marcher" votre chemin à travers les personnages. Vous verrez que le curseur se déplace de manière différente sur chaque ligne.
À corriger, supprimer les onglets et les espaces au début de chaque ligne et insérez-la de nouveau avec les mêmes caractères sur chaque ligne.
À éviter à l'avenir, entraînez-vous à utiliser la touche tabulation OU la touche espace pour mettre en retrait, et d'étudier la création de votre éditeur automatiquement convertir les tabulations en espaces.
En supposant que vous avez un "bon" IDE, il est préférable de mettre la touche tab pour faire 4 espaces au lieu d'un "onglet", de cette façon, vous aurez moins de problèmes, et c'est une bonne pratique, car quand vous allez travailler avec d'autres personnes.
Selon votre Doc chaînes
votre code:
Cette quantité de code peut être simplifié à une seule ligne
Aussi, si u ne sont pas bonnes avec des indentations dans 'vim' éditeur de son bon de pratiquer dans IDLE3