我的Python DNA测序代码出错

2024-09-30 16:36:56 发布

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

这是我一直在写的代码。我试着用结构索引一个给定的DNA链的方法,但没有用。这段代码的某个地方有个错误,但我不确定我忘了包括什么。如果你能告诉我为什么这个程序不起作用,那就太好了:

class dnaString (str):
    def __new__(self,s):
        return str.__new__(self,s.upper())

    def getNewStrand (self):
        return str.index("ACTG")

    def printNewStrand (self):
        print ("New DNA strand: {0}".format(str.index("ACTG")))

dna = input("Enter a dna sequence: ")
x=dnaString(dna)
x.printNewStrand()

Tags: 方法代码selfnewindexreturndef地方
1条回答
网友
1楼 · 发布于 2024-09-30 16:36:56

使用self.index,而不是str.index

    print ("New DNA strand: {0}".format(self.index("ACTG")))

或者更好的是,修复getNewStrand并在printNewStrand中使用它:

def getNewStrand(self):
    return self.index("ACTG")

def printNewStrand(self):
    print("New DNA strand: {0}".format(self.getNewStrand()))

str.index是一个需要2个参数的方法:

>>> str.index('abc','b')
1

它在abc(如果有)中查找第一次出现的b的索引。你知道吗

selfstr的实例。使用实例调用方法时,实例将作为函数的第一个参数隐式提供。所以self.index('ACTG')调用

str.index(self, 'ACTG')

如果ACTG不在self,则self.index('ACTG')将引发ValueError。如果您不想引发错误,可以调用self.find('ACTG')。如果ACTG不在self,则self.find将返回-1,而不是引发ValueError。否则,其行为与self.index相同。你知道吗

相关问题 更多 >