Skip to main content
 首页 » 编程设计

python之对字符串进行切片并返回拼接后的字符串

2025年05月04日41webabcd

我的函数在 8 个位置分割字符串(DNA 代码)并返回它们时遇到问题。我是 rstrip() 和 split() 函数的新手,我想我可能需要在这里使用它们,但我不太明白如何使用。

这是我的代码:

input2=open('queryfile.txt','r') 
 
def slice_seq(a,b,c,d,e,f,g,h,query_seq): 
    query_seq=input2 
        slice_1=query_seq[a:b + 1] 
        slice_2=query_seq[c:d + 1] 
        slice_3=query_seq[e:f + 1] 
        slice_4=query_seq[g:h + 1] 
    return slice_1,slice_2,slice_3,slice_4 
 
a=146 
b=917 
c=2381 
d=2737 
e=1 
f=155 
g=917 
h=1057 
answer=slice_seq(a,b,c,d,e,f,g,h,input2) 
print(answer) 

查询文件如下所示:

emb|AJ000012.1| Mycobacterium tuberculosis recA gene (strain Canetti) 
CGAAAGGTCAGATCCGGGCCGGTGAGCACGCCGGATCCGGCCAGGCTAGCGGTGTTCAGCAGATCGTCGG 
TGATCCGGACCAGCCGCGCACGCAAGTCGGGCCGCACCGCCGCCAGGGCGTTCGACGCGCCGACGAGCGC 
GGACGCGATGTTGCCACACGCGGCGTGTCACACTTGAATCGAACAGGTGTTCGGCTACTGTGGTGATCAT 
TCGGAGCAGCCGACTTGTCAGTGGCTGTCTCTAGTGTCACGGCCAACCGACCGATACCGGTCAATCGAAC 
ACCGACCACAGGAGAGGCACCATGACGCAGACCCCCGATCGGGAAAAGGCGCTCGAGCTGGCAGTGGCCC 
AGATCGAGAAGAGTTACGGCAAAGGTTCGGTGATGCGCCTCGGCGACGAGGCGCGTCAGCCGATTTCGGT 
CATTCCGACCGGATCCATCGCACTCGACGTGGCCCTGGGCATTGGCGGCCTGCCGCGTGGCCGGGTGATA 
GAGATATACGGCCCGGAATCTTCGGGTAAGACCACCGTGGCGCTGCACGCGGTGGCCAACGCTCAGGCCG 
CCGGTGGTGTTGCGGCGTTCATCGACGCCGAGCACGCGCTGGATCCGGACTATGCCAAGAAGCTCGGTGT 
CGACACCGATTCGCTGCTGGTCAGCCAGCCGGACACCGGGGAACAGGCACTCGAGATCGCCGACATGCTG 
ATCCGCTCGGGTGCGCTTGACATCGTGGTGATCGACTCGGTGGCGGCGCTGGTGCCGCGCGCGGAGCTCG 
AAGGCGAGATGGGCGACAGCCACGTCGGGCTGCAGGCCCGGCTGATGAGCCAGGCGCTGCGGAAAATGAC 
CGGCGCGCTGAATAATTCGGGCACCACGGCGATCTTCATCAACCAGCTCCGCGACAAGATCGGAGTGATG 
TTCGGGTCGCCCGAGACGACAACGGGCGGAAAGGCGTTGAAGTTCTACGCGTCGGTGCGCATGGACGTGC 
GGCGGGTCGAGACGCTCAAGGACGGTACCAACGCGGTCGGCAACCGCACCCGGGTCAAGGTCGTCAAGAA 
CAAGTGCCTCGCAGAGGGCACTCGGATCTTCGATCCGGTCACCGGTACAACGCATCGCATCGAGGATGTT 
GTCGATGGGCGCAAGCCTATTCATGTCGTGGCTGCCGCCAAGGACGGAACGCTGCATGCGCGGCCCGTGG 
TGTCCTGGTTCGACCAGGGAACGCAGGATGTGATCGGGTTGCGGATCGCCGGTGGCGCCATCGTGTGGGC 
GACACCCGATCACAAGGTGCTGACAGAGTACGGCTGGCGTGCCGCCGGGGAACTCCGCAAGGGAGACCGG 
GTGGCGCAACCGCGACGCTTCGACGGATTCGGTGACAGTGCGCCGATTCCGGCGGATCATGCCCGGCTGC 
TTGGCTACCTGATCGGAGATGGCAGGGATGGTTGGGTGGGGGGCAAGACTCCGATCAACTTCATCAATGT 
TCAGCGGGCGCTCATTGACGACGTGACGCGAATCGCTGCGACGCTCGGTTGTGCGGCCCATCCGCAGGGG 
CGTATCTCACTCGCGATCGCTCATCGACCCGGTGAGCGCAACGGGGTACTGGACCTTTGTCGGCGGGCCG 
GTGTGCACGGCAAGCTCGCGTGGGAGAAGACGATTCCGAATTGGTTCTTCGAGCCGGACATCGCGGCCGA 
CATTGTCGGCAATCTGCTCTTCGGCCTGTTCGAAAGCGACGGGTGGGTGAGCCGGGAACAGACCGGGGCA 
CTTCGGGTCGGTTACACGACGACCTCTGAACAACTCGCGCATCAGATTCATTGGCTGCTGCTGCGGTTCG 
GTGTCGGGAGCACCGTTCGAGATTACGATCCGACCCAGAAGCGGCCGAGCATCGTCAACGGTCGACGGAT 
CCAGAGCAAACGTCAAGTGTTCGAGGTCCGGATCTCGGGTATGGATAACGTCACGGCATTCGCGGAGTCA 
GTTCCCATGTGGGGGCCGCGCGGTGCCGCGCTTATCCAGGCGATTCCAGAAGCCACGCAGGGGCGGCGTC 
GTGGATCGCAAGCGACATATCTGGCTGCAGAGATGACCGATGCCGTGCTGAATTATCTGGACGAGCGCGG 
CGTGACCGCGCAGGAGGCCGCGGCCATGATCGGTGTAGCTTCCGGGGACCCCCGCGGTGGAATGAAGCAG 
GTCTTAGGTGCCAGCCGCCTTCGTCGGGATCGCGTGCAGGCGCTCGCGGATGCCCTGGATGACAAATTCC 
TGCACGACATGCTGGCGGAAGAACTCCGGTATTCGGTGATCCGAGAAGTGCTGCCAACGCGGCGGGCACG 
AACGTTCGACCTCGAGGTCGAGGAACTGCACACCCTCGTCGCCGAAGGGGTTGTCGTGCACAACTGTTCG 
CCCCCCTTCAAGCAGGCCGAGTTCGACATCCTCTACGGCAAGGGAATCAGCAGGGAGGGCTCGCTGATCG 
ACATGGGTGTGGATCAGGGCCTCATCCGCAAGTCGGGTGCCTGGTTCACCTACGAGGGCGAGCAGCTCGG 
CCAGGGCAAGGAGAATGCCCGCAACTTCTTGGTGGAGAACGCCGACGTGGCTGACGAGATCGAGAAGAAG 
ATCAAGGAAAAGCTTGGCATTGGTGCCGTGGTGACCGATGACCCCTCAAATGACGGTGTCCTGCCCGCCC 
CCGTCGACTTCTGAGCGCGAAGAGCAGGCGCGGGCACTGTGCCTGCGCCTGCTCACCGCGCGATCCCGCA 
CCCGCGC 

任何帮助将不胜感激!我很确定我的问题是如何处理查询文件,以便函数可以识别它并对其进行切片?

请您参考如下方法:

在函数 slice_seq 中,删除行 query_sec = input2。这引发了一个错误。您还没有在函数中创建一个名为 input2 的变量,并且没有参数这样命名。那是引发错误。您不能将函数中的变量设置为另一个变量。您必须先将另一个变量全局化。