Непоследовательное использование вкладок и пробелов в отступе

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 

Я новичок в Python. Вложенная выше программа дает мне ошибку «Непоследовательное использование вкладок и пробелов в отступе» в строке «if temp == dna2:» конкретно. Может кто-то, пожалуйста, помогите мне узнать, как отпечаток неверен?

4 Solutions collect form web for “Непоследовательное использование вкладок и пробелов в отступе”

Это означает, что вы смешали пробелы и вкладки в отступе. Вы должны исправить это, чтобы быть совместимым с вкладками или пробелами.

Если вы внимательно посмотрите на линии

  temp=dna1[i:i+len2] if temp == dna2: 

в вашем коде вы увидите, что «пространство» в начале каждой строки «построено» по-разному. В одном случае он использует вкладки и в других пространствах или, если у обоих есть вкладки и пробелы, они используются в разных комбинациях.

Вы можете изучить это, поместив курсор в начало каждой строки и используя клавишу со стрелкой вправо, чтобы «пройти» по вашему пути через символы. Вы увидите, что курсор перемещается по-разному на каждой строке.

Чтобы исправить, удалите вкладки и пробелы в начале каждой строки и повторно вставьте их с одинаковыми символами в каждой строке.

Чтобы избежать в будущем, научитесь использовать только клавишу табуляции или клавишу пробела для отступов и подумайте о том, чтобы настроить ваш редактор на автоматическое преобразование вкладок в пробелы.

Предполагая, что у вас есть «хорошая» среда IDE, лучше всего настроить ключ табуляции на 4 пробела вместо «вкладки», так что у вас меньше проблем, и это хорошая практика, когда вы будете работать с другими людьми.

Согласно вашим строкам Doc

ваш код:

 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 

Этот большой код можно упростить до одной строки

 return dna1.find(dna2)>=0 

Также, если u не очень хорош с отступом в редакторе vim, его хорошо практиковать в IDLE3

  • Добавьте несколько символов в начале каждой строки
  • ИдентификаторError ожидает отложенный блок
  • Python IndentationError: неожиданный отступ
  • Есть ли быстрый способ уменьшить отступ нескольких строк в Python?
  • Python IndentationError unindent не соответствует внешнему уровню отступа
  • IndentationError: неожиданный unindent ПОЧЕМУ?
  • (python) docstring вызывает ошибку отступов
  • Python ожидает отложенный блок
  • Python - лучший язык программирования в мире.