TypeError: object of type 'builtin_function_or_method' has no len() while using string
TypeError: object of type 'builtin_function_or_method' has no len() while using string
我很确定我的程序还有另一个愚蠢的错误,但我找不到它。我已经尝试 google 一段时间了,但到目前为止还没有结果。
我正在尝试使用 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 是否为回文。
DNA = DNA.upper()
没有括号,您指的是名为 upper
的函数,但不执行它。 DNA
成为函数,不再是字符串。
你的行 DNA = DNA.upper
应该是:
DNA = DNA.upper()
您已将函数 DNA.upper
分配给变量 DNA
,这就是它不再是字符串的原因。
我很确定我的程序还有另一个愚蠢的错误,但我找不到它。我已经尝试 google 一段时间了,但到目前为止还没有结果。
我正在尝试使用 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 是否为回文。
DNA = DNA.upper()
没有括号,您指的是名为 upper
的函数,但不执行它。 DNA
成为函数,不再是字符串。
你的行 DNA = DNA.upper
应该是:
DNA = DNA.upper()
您已将函数 DNA.upper
分配给变量 DNA
,这就是它不再是字符串的原因。