Python 2.7 在字符串中查找子字符串而不使用任何内置函数
我必须在字符串中找到一个特定的子字符串及其在字符串中的位置。这很容易,但我必须在不使用python中的任何内置函数或方法的情况下实现这一点。如果有人能帮忙,我会非常感激的。谢谢Python 2.7 在字符串中查找子字符串而不使用任何内置函数,python-2.7,Python 2.7,我必须在字符串中找到一个特定的子字符串及其在字符串中的位置。这很容易,但我必须在不使用python中的任何内置函数或方法的情况下实现这一点。如果有人能帮忙,我会非常感激的。谢谢 string="ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGCCTCCTGACTTTCC
string="ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGCCTCCTGACTTTCCTCGCTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGGAAGCTCGGGAGGTGGCCAGGCGGCAGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCCCTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAGTTTAATTACAGACCTGAA"
substring='ttg'如果只需要字符串中的子字符串,可以使用以下命令:
str[12:15]
另一个例子:
a = '1234567890'
then
>>> a[-3:-1]
'89'
>>> a[-3:]
'890'
>>> a[-2]
'9'
>>> a[5]
'6'
如果您不想使用任何内置函数,此代码将起作用
man = "ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCC$
check = "TTG"
for i in range (0, len(man)):
if man[i]==check[0]:
sum =0
for j in range(0, len(check)):
if man[i+j] != check[j]:
break
sum = 0
else:
sum = sum +1
if sum == len(check):
print i
如果没有任何内置项,就很难实现这一点,因为您需要
len
或enumerate
来利用当前索引的知识进行迭代
尽管如此,这里是一个仅使用len
的实现
def find(s, sub):
idx = 0
while idx < len(s):
if s[i:len(sub)] == sub:
return idx
return -1
当然,这有点作弊,因为迭代和切片比许多内置组件对您的帮助更大
def find(s, sub):
sub_len = 0
for _ in sub:
sub_len += 1
idx = 0
while s[idx:idx+1]:
if s[i:sub_len] == sub:
return idx
return -1