2017-04-23 193 views
0

我很确定我的程序有另一个愚蠢的错误,但我找不到它。我试图谷歌一段时间,但迄今没有结果。TypeError:类型'builtin_function_or_method'的对象在使用字符串时没有len()

我想要使用循环的len方法。我用它恰好在没有问题的程序不同的功能以同样的方式,但在这个功能我得到一个类型错误:

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是回文。

回答

1
DNA = DNA.upper() 

没有括号,你是指称为upper的功能,但不执行它。 DNA成为函数,它不再是一个字符串。

1

你行DNA = DNA.upper应该是:

DNA = DNA.upper() 

您分配的功能DNA.upper到变量DNA,这就是为什么它不再是一个字符串。

相关问题