TypeError:'builtin_function_or_method'对象是不可取消的?

时间:2012-09-09 10:26:24

标签: python text types

嗨,我有一个问题,我不明白为什么我有一个类型错误请解释它是什么以及我如何解决它 提前谢谢!

abb = raw_input("Abbreviation: ")
text = raw_input("Text: ")
text = text.lower().split()
abb = abb.lower().split
list1 = []
i = 0
j = 0

while i < len(text):
    for i in range(len(text)):
        if text[i].startswith(abb[0]):
            list1.append(text[i])
            for i in range(len(text)):
                if text[i].startswith(abb[1]):
                    list1.append(text[i])
                    for i in range(len(text)):
                        if text[i].startswith(abb[2]):
                            list1.append(text[i])

4 个答案:

答案 0 :(得分:6)

查看你的行

abb = abb.lower().split

(并将其与上面的正确行进行比较)。您没有调用该函数,只需将abb指定给方法split本身的同一对象。

因此,当您尝试abb[0]时,它会尝试下载函数本身。

答案 1 :(得分:1)

abb = abb.lower().split更改为abb = abb.lower().split()

答案 2 :(得分:0)

这意味着在您的代码中某些位置使用方括号表示法(即“下标”可迭代)时,该东西不可迭代。在某个地方,你认为你有一个字符串,你实际上有一个功能。

无论如何,这就是错误消息告诉你的。调试这样的代码时,只需删除大量的print语句,然后查看出错的地方。

答案 3 :(得分:0)

在第4行,你输入

abb = abb.lower().split

这将为您提供小写abb字符串的拆分功能,而不是调用它。只需将上面的代码更改为:

abb = abb.lower().split()

就像您使用字符串文本对上一行中的代码所做的那样。