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

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

  • Возьмите пробел / отступ строки с помощью Python
  • Python IndentationError: неожиданный отступ
  • IndentationError: unindent не соответствует внешнему уровню отступа
  • Python ожидает отложенный блок
  • Почему Python pep-8 настоятельно рекомендует использовать пробелы над вкладками для отступов?
  • Общие сведения об ошибках отступа в Python 2.7
  • IndentationError: неожиданный unindent ПОЧЕМУ?
  • Python IndentationError unindent не соответствует внешнему уровню отступа
  •  
    Interesting Posts for Van-Lav

    Проблема импорта xlrd с Python 2.7

    python получает заголовки только с помощью urllib2

    Назначение пустого значения или строки в Python

    Программа командной строки Python: создание man-страницы из существующей документации и включение в дистрибутив

    Пропустить первую пару строк при чтении строк в файле Python

    python – как проверить, существует ли таблица?

    Проблемы, связанные с получением большинства информационных функций с помощью scikit?

    Поле модели Django переменной

    Получение следующего значения внутри цикла

    Отправлять сообщения журнала из всех задач сельдерея в один файл

    Python: как вызвать длинную функцию, содержащую сотни списков в краткой форме

    Удалите строки с повторяющимися индексами (Pandas DataFrame и TimeSeries)

    открытый python и утечки памяти

    Как сбить python unittest, если setUpClass выдает исключение

    Почему это регулярное выражение приводит к четырем элементам?

    Python - лучший язык программирования в мире.