欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 练习题:DNA序列的基因片段检测

程序员文章站 2023-12-29 09:57:58
...
题目要求:

有一个DNA序列,用字符串S表示(仅包含’A’、’C’、’G’、’T’四种字符,
长度<100000)。现有N个待检测的基因片段(序号分别是1,2…N),用字符
串Ti(i=1,2…,N)表示(仅包含’A’、’C’、’G '、’T’四种字符,长度<1000)。
请分别检测DNA序列S中是否存在这些基因片段,并按下面输出说明格式依次输出检测结果。

输入说明:第一行是DNA序列S。
第二行是正整数N,表明有N个待检测的基因片段,之后有N行,分别表示这N个待检测的
基因片段,即每行一个基因片段。
输出说明:依次匹配这N个待检测的基因片段,如果DNA序列S中存在第i个待检测的基因
片段,输出Ti:ALERT所在位置(即Ti的首字母在S中的位置,如果出现多次,输出第
一次出现的位置,S的起始位置为1);如果不存在则输出Ti:SAFE。
输入样例:
ATCGCGCGAATTCATCGTTCGA
3
CG
TT
CGA
输出结果:
T1 :ALERT 3
T2 :ALERT 11
T3 :ALERT 7

代码图

Python 练习题:DNA序列的基因片段检测

代码如下
'''
有一个DNA序列,用字符串S表示(仅包含’A’、’C’、’G’、’T’四种字符,
长度<100000)。现有N个待检测的基因片段(序号分别是1,2...N),用字符
串Ti(i=1,2..,N)表示(仅包含’A’、’C’、’G '、’T’四种字符,长度<1000)。
请分别检测DNA序列S中是否存在这些基因片段,并按下面输出说明格式依次输出检测结果。

输入说明:第一行是DNA序列S。
第二行是正整数N,表明有N个待检测的基因片段,之后有N行,分别表示这N个待检测的
基因片段,即每行一个基因片段。
输出说明:依次匹配这N个待检测的基因片段,如果DNA序列S中存在第i个待检测的基因
片段,输出Ti:ALERT所在位置(即Ti的首字母在S中的位置,如果出现多次,输出第
一次出现的位置,S的起始位置为1);如果不存在则输出Ti:SAFE。
输入样例:
ATCGCGCGAATTCATCGTTCGA
3
CG
TT
CGA
输出结果:
T1 :ALERT 3
T2 :ALERT 11
T3 :ALERT 7
'''
def main():
    S=input('请输入一个DNA序列:')
    N=int(input('请输入待检测基因片段个数:'))
    T={}
    for i in range(1,N+1):
        T1="T"+str(i)
        print(T1,':',end='')
        T2=input()
        T[T1]=T2
    for i in T:
        if T[i] in S:
            print(i,':ALERT',S.find(T[i])+1)
        else:
            print(i,':SAFE')
main()

运行效果图

Python 练习题:DNA序列的基因片段检测

相关标签: Python习题集

上一篇:

下一篇: