Python-如何每次为新结果重复一个循环?

Python-如何每次为新结果重复一个循环?,python,Python,我需要制作的程序读取一个文本文件,其中包含3行对齐的dna序列(每个序列的长度为'n'),并打印出一个长度为'n'的随机列 如果你不想点击东西,基本上是这样的: AGAACGC AACCTAG AGCTCAC 以下是我的节目: import random file = open('3seq.txt', 'r') seq1 = file.readline().strip() seq2 = file.readline().strip() seq3 = file.readline().stri

我需要制作的程序读取一个文本文件,其中包含3行对齐的dna序列(每个序列的长度为'n'),并打印出一个长度为'n'的随机列

如果你不想点击东西,基本上是这样的:

AGAACGC
AACCTAG
AGCTCAC
以下是我的节目:

import random

file = open('3seq.txt', 'r')

seq1 = file.readline().strip()
seq2 = file.readline().strip()
seq3 = file.readline().strip()

length = len(seq1)


rand1 = ''
rand2 = ''
rand3 = ''

for blah in range(length):
    x = random.randrange(length)
    rand1 += seq1[x]
    rand2 += seq2[x]
    rand3 += seq3[x]
print rand1
print rand2
print rand3
结果是:

ACAGGAA
ATAAACA
ACAAGTA
import random
sequence = open('3seq.txt', 'r')
seq1, seq2, seq3 = sequence.readlines()
sequence.close()

x = 3

def get_random(seq1, seq2, seq3):
    length = len(seq1)

    rand1 = ''
    rand2 = ''
    rand3 = ''

    for i in range(length):
        x = random.randrange(length)
        rand1 += seq1[x]
        rand2 += seq2[x]
        rand3 += seq3[x]
    print rand1
    print rand2
    print rand3
    print 

for j in xrange(x):  # 'x' being defined at the top.
    get_random(seq1, seq2, seq3)
如果不太清楚,我很抱歉

所以问题是:

我如何修改我的程序以获得“x”个结果?假设我想要3个结果:

ACAGGAA
ATAAACA
ACAAGTA

AGCCCAA
CAGGGAC
CACCCAC

CGACGCA
TAAGATC
CAACGCC
我正在得到我想要的答案…我只是想把更多的答案打印出来


有什么帮助吗?

稍微清理一下代码并为指定的工作创建一个函数,它看起来像:

ACAGGAA
ATAAACA
ACAAGTA
import random
sequence = open('3seq.txt', 'r')
seq1, seq2, seq3 = sequence.readlines()
sequence.close()

x = 3

def get_random(seq1, seq2, seq3):
    length = len(seq1)

    rand1 = ''
    rand2 = ''
    rand3 = ''

    for i in range(length):
        x = random.randrange(length)
        rand1 += seq1[x]
        rand2 += seq2[x]
        rand3 += seq3[x]
    print rand1
    print rand2
    print rand3
    print 

for j in xrange(x):  # 'x' being defined at the top.
    get_random(seq1, seq2, seq3)

将当前脚本封装在函数中,并在循环中调用它
3次。同学们?非常感谢!这让我清楚了如何很好地使用函数。很高兴能帮助你,如果你的问题真的满意的话,你也可以对答案进行上选并在上面打上绿色的勾来表示感谢。谢谢。还有一个小问题。是否有理由使用“xrange”而不是“range”?我在我的程序中交换了它们,在这两种情况下似乎都可以正常工作。实际上使用
range
是完全可以的,速度上有一点不同,
xrange
速度更快,效率更高,因为它不像
range
那样创建整个列表。