这是我一直在写的代码。我试着用结构索引一个给定的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()
使用
self.index
,而不是str.index
:或者更好的是,修复
getNewStrand
并在printNewStrand
中使用它:str.index
是一个需要2个参数的方法:它在
abc
(如果有)中查找第一次出现的b
的索引。你知道吗self
是str
的实例。使用实例调用方法时,实例将作为函数的第一个参数隐式提供。所以self.index('ACTG')
调用如果
ACTG
不在self
,则self.index('ACTG')
将引发ValueError。如果您不想引发错误,可以调用self.find('ACTG')
。如果ACTG
不在self
,则self.find
将返回-1,而不是引发ValueError。否则,其行为与self.index
相同。你知道吗相关问题 更多 >
编程相关推荐