Я только недавно начал использовать python, и я очень плохо знаком с python и программированием в целом, и я учусь в классе, где нам дали задание найти функцию в Python, которая принимает две строки последовательности ДНК (скажем, string1 и string2 ) в качестве входных данных и возвращает список позиций, в которых строка2 присутствует в качестве подстроки строки1. И поскольку предполагается, что мы знакомимся с тем, как работает программирование, мы не можем использовать встроенную функцию «найти». Я действительно смущен тем, как даже начать эту проблему. Но это то, что у меня есть до сих пор:
def linear(seq, sub):
positions = [0]
for i in range(len(sub)):
if seq[i:i+len(sub)] == sub:
positions[0]+=1
return( positions )
Я получаю сообщение об ошибке, когда вставляю это, но я должен получить список позиций, в которых встречается подстрока. Если бы кто-то мог указать мне, в каком направлении я должен идти, это было бы очень полезно.
Например, если последовательность — «ATTCCATGGACCTAGTCAT», а подстрока, которую я хочу найти, — «CAT», то вывод должен быть [5,17]