Python'builtin_function_or_method'对象不是可迭代的错误

时间:2017-03-03 19:40:18

标签: python traceback

我创建了这个程序,它将用一个单词替换一个句子,并将它们保存为一个单独的文件。但是,当我运行它时,我收到此错误:     Traceback(最近一次调用最后一次):       文件,第12行,in         Positions = list2.index(word)

这是代码:

UserSentence = input("enter sentence:").lower()
words = UserSentence
words = words.split()
number = 0
list1 = []
list2 = " "

for Position in words:
    if Position not in list1:
        list1.append(Position)
for word in words:
        Positions = list2.index(word)
        list2+=str(Positions+int("1"))
        list2 +=("")
list1str += ";".join(list1)

file = open ("myfile.txt","w")
file.write(sentence)
file.write(list1str)
file.write(list2)
file = open ("myfile.txt", "r")
print (file.read())
file.close()

有人可以解释一下我在代码中犯的错误吗?

2 个答案:

答案 0 :(得分:0)

UserSentence = input("enter sentence:").lower()
words = UserSentence
words = words.split() # actually call the function

在不使用括号的情况下,您实际上是将方法.split分配给变量words,然后尝试对其进行迭代,从而为您提供错误。

答案 1 :(得分:0)

您设置words = words.split,但实际上并没有调用该方法,因此您尝试迭代对该函数的引用。请使用words = words.split()

调用该方法