Ответ 1
Это означает, что вы смешали пробелы и вкладки в отступе. Вы должны исправить это, чтобы быть совместимым с вкладками или пробелами.
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:" конкретно. Может кто-то, пожалуйста, помогите мне узнать, как отступы неверны?
Это означает, что вы смешали пробелы и вкладки в отступе. Вы должны исправить это, чтобы быть совместимым с вкладками или пробелами.
Если вы внимательно посмотрите на строки
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