2024-06-08 15:12:08 发布
网友
这就是到目前为止我得到的,它并不是因为某种原因用G来代替C。为什么会这样?在
DNASeq=raw_input("Enter the DNA sequence here: ") DNASeq=DNASeq.upper().replace(" ","") reverse=DNASeq[::-1] print reverse.replace('A','U').replace('T','A').replace('C','G').replace('G','C')
你已经完成了几乎正确的代码。 但这里有一件事你需要理解,首先你用G代替C,然后再用C代替G
.replace('C','G').replace('G','C')
只需从代码中删除.replace('G','C'),一切正常。在
.replace('G','C')
以下是正确的代码:
正如已经指出的,问题是,您首先要用Gs替换所有的Cs。我想加入这种方法是因为我认为它是最有效的:
>>> complement = {'A':'U', 'G':'C', 'C':'G','T':'A'} >>> seq = "GATTACA" >>> "".join(complement[c] for c in seq)[::-1] 'UGUAAUC' >>>
问题是,您将C替换为G,然后将{}替换为{}。一种简单的防止你从一个转到另一个的方法是将C替换为g,这样它就不会回到C,然后将结果大写:
C
G
g
gattaca="GATTACA" rev = gattaca[::-1] print rev.replace('A','u').replace('T','a').replace('C','g').replace('G','c').upper()
这将正确地输出UGUAAUC,而不是{},正如您的示例所做的那样。在
UGUAAUC
不过,更具python风格的方法是:避免基于案例的黑客攻击,并且由于字符串无需扫描五次,因此效率更高,而且目的更为明显:
你已经完成了几乎正确的代码。 但这里有一件事你需要理解,首先你用G代替C,然后再用C代替G
只需从代码中删除
.replace('G','C')
,一切正常。在以下是正确的代码:
正如已经指出的,问题是,您首先要用Gs替换所有的Cs。我想加入这种方法是因为我认为它是最有效的:
问题是,您将}替换为{}。一种简单的防止你从一个转到另一个的方法是将
C
替换为G
,然后将{C
替换为g
,这样它就不会回到C
,然后将结果大写:这将正确地输出},正如您的示例所做的那样。在
UGUAAUC
,而不是{更新
不过,更具python风格的方法是:避免基于案例的黑客攻击,并且由于字符串无需扫描五次,因此效率更高,而且目的更为明显:
^{pr2}$相关问题 更多 >
编程相关推荐