AttributeError: 'builtin_function_or_method' object has no attribute 'isalpha'

AttributeError: 'builtin_function_or_method' object has no attribute 'isalpha'

当我尝试像这里一样使用“isalpha()”函数时:

def find_chars(string):
  num_letter = 0
  num_int = 0
  num_spec = 0

  for i in string:
    i_str = i.lower
    if i_str.isalpha():
      num_str +=1 
    elif i.isdigit():
      num_int += 1
    else:
      num_spec += 1
  return num_letter, num_int, num_spec

我得到以下内容

AttributeError: 'builtin_function_or_method' object has no attribute 'isalpha'

如果有帮助,我正在使用 python 3.6.9(使用 google colab)

问题出在上面那行

i_str = i.lower

应该是:

i_str = i.lower()

i_str 的类型更改为使用该分配函数。

正如 user2357112 支持 Monica 所说,您忘记了 i.lower

中的括号
def find_chars(string):
  num_letter = 0
  num_int = 0
  num_spec = 0

  for i in string:
    i_str = i.lower()  # <-- Added parenthesis
    if i_str.isalpha():
      num_str +=1 
    elif i.isdigit():
      num_int += 1
    else:
      num_spec += 1
  return num_letter, num_int, num_spec

由于您忘记了括号,您正在将一个函数分配给一个变量,因此当您尝试执行 i_str.isalpha() 时,该变量(现在包含一个函数)没有 isalpha() 像字符串一样的方法。