生物信息学代码:我有这个代码,我希望输入是两个字符串:文本和模式,输出是一个数字

2024-09-29 23:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

def PatternCount(Text,Pattern):
    count = 0
    for i in range(0,len(Text)-len(Pattern)):
        if Text[i:len(Pattern)] == Pattern:
            count = count + 1
    return count
Text = input("enter DNA string")
Pattern = input("enter 1st Pattern")

这是我的密码

  • 输入:字符串文本和模式
  • 输出:计数(文本、图案)

例如:

  • 样本输入:
    • 文本:GCG
    • 模式:GCG
  • 样本输出:
    • 二,

Tags: textin文本forinputlendefcount
2条回答

Text[i:len(Pattern)]中的第二个数字不是长度,而是最终位置。您需要向它添加i

此外,为了找到最终匹配,您需要再迭代一个周期

def PatternCount(Text,Pattern):
    count = 0
    for i in range(0, 1 + len(Text) - len(Pattern)):
        if Text[i:i + len(Pattern)] == Pattern:
            count = count + 1
    return count
Text = input("enter DNA string ")
Pattern = input("enter 1st Pattern ")
print(PatternCount(Text,Pattern))

除了choroba所示的更正函数之外,还可以使用^{}-

import re
print(len(list(re.finditer("(?=%s)" % Pattern, Text))))

-或者^{}具有相同的零宽度前瞻模式

相关问题 更多 >

    热门问题