我很确定我的程序有另一个愚蠢的错误,但我找不到它。我试图谷歌一段时间,但到目前为止没有结果。
我正在尝试将len方法用于循环。我在程序中的不同函数中以完全相同的方式使用它而没有问题,但在这个函数中我得到一个TypeError:
def longestPalindrome(DNA):
"""
Finds the longest palindrome in a piece of DNA.
"""
DNA = DNA.upper #makes sure DNA is in all caps
longest = ""
for x in range(len(DNA)):
for y in range(len(DNA)):
long = DNA[x:y+1]
if checkPalindrome(long) and (len(long) > len(longest)):
longest = long
return longest
DNA是一个字符串,checkPalindrome是一个较早的函数,用于检查一块DNA是否是回文。
答案 0 :(得分:1)
DNA = DNA.upper()
如果没有括号,则表示名为upper
的函数,但不执行它。 DNA
成为函数,它不再是字符串。
答案 1 :(得分:1)
您的第DNA = DNA.upper
行应为:
DNA = DNA.upper()
您已将函数DNA.upper
分配给变量DNA
,这就是它不再是字符串的原因。