-2

我必须在字符串中找到特定的子字符串及其在字符串中的位置。这很容易,但我必须在不使用 python 中的任何内置函数或方法的情况下做到这一点。如果有人可以提供帮助,我将不胜感激。谢谢

string="ACAAGATGCCATTGTCCCCCGGCCTCCTGCTGCTGCTGCTCTCCGGGGCCACGGCCACCGCTGCCCTGCCCCTGGAGGGTGGCCCCACCGGCCGAGACAGCGAGCATATGCAGGAAGCGGCAGGAATAAGGAAAAGCAGCCTCCTGACTTTCCTCGCTTGGTGGTTTGAGTGGACCTCCCAGGCCAGTGCCGGGCCCCTCATAGGAGAGGAAGCTCGGGAGGTGGCCAGGCGGCAGGAAGGCGCACCCCCCCAGCAATCCGCGCGCCGGGACAGAATGCCCTGCAGGAACTTCTTCTGGAAGACCTTCTCCTCCTGCAAATAAAACCTCACCCATGAATGCTCACGCAAGTTTAATTACAGACCTGAA"

子串='ttg'

4

3 回答 3

1

如果您不想使用任何内置函数,此代码将起作用。

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
于 2013-04-04T23:37:48.960 回答
0

如果没有任何内置函数,很难实现这一点,因为您需要lenenumerate使用当前索引的知识进行迭代。

虽然,这里只是一个实现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

当然,这有点作弊,因为迭代和切片比许多内置函数对您的作用更大。

于 2018-09-04T22:59:33.417 回答
-1

如果你只想要你的字符串中的子字符串,你可以使用这个:

str[12:15]

另一个例子:

a = '1234567890'
then 
>>> a[-3:-1]
'89'
>>> a[-3:]
'890'
>>> a[-2]
'9'
>>> a[5]
'6'
于 2013-04-04T23:26:51.870 回答