Python 试图将输入插入文件,但具有'';非类型';“对象不可编辑”;错误';
我试图从用户那里获取一个输入,并将该输入放在文件的正确位置 以下是我到目前为止所做的工作(Names.txt有一个按字母顺序排列的名字列表,我不想要任何重复的名字,所以我将列表转换为set) 但每当我输入q以外的东西时,我就会遇到问题Python 试图将输入插入文件,但具有'';非类型';“对象不可编辑”;错误';,python,Python,我试图从用户那里获取一个输入,并将该输入放在文件的正确位置 以下是我到目前为止所做的工作(Names.txt有一个按字母顺序排列的名字列表,我不想要任何重复的名字,所以我将列表转换为set) 但每当我输入q以外的东西时,我就会遇到问题 Traceback (most recent call last): File "C:\Users\SKKU\Desktop\1.py", line 12, in <module> main() File "C:\Users\SKKU\D
Traceback (most recent call last):
File "C:\Users\SKKU\Desktop\1.py", line 12, in <module>
main()
File "C:\Users\SKKU\Desktop\1.py", line 8, in main
outfile.writelines(list1)
TypeError: 'NoneType' object is not iterable
回溯(最近一次呼叫最后一次):
文件“C:\Users\SKKU\Desktop\1.py”,第12行,在
main()
文件“C:\Users\SKKU\Desktop\1.py”,第8行,主目录
outfile.writelines(列表1)
TypeError:“非类型”对象不可编辑
我该怎么办?
我做得对吗?向列表中添加名称的行应该是:
list1.append(name1)
因为append
修改现有列表,并且不返回任何内容(即返回None
)
因此,您使用
list1=list1.append(name1)
将list1
设置为None
。然后您将None
传递到outfile.writelines
,它试图迭代您传递的内容,当然,这对None
没有意义将名称添加到列表中的行应该是:
list1.append(name1)
因为append
修改现有列表,并且不返回任何内容(即返回None
)
因此,您使用
list1=list1.append(name1)
将list1
设置为None
。然后您将None
传递给outfile.writelines
,它试图迭代您传递的内容,当然,这对None
没有意义另一个指针,声明name1=0没有用
name1 = 0 #you can remove this
name1 = input("Enter a name, if you want to quit, enter q: ")
while name1 != "q":
list1 = list1.append(name1)
outfile.writelines(list1)
此外,while循环正在无限期地向文件中写入行
您指示您的程序将name1附加到列表中,然后像@Blorgbeard所说的那样在文件中写入一些没有意义的内容
因此,您可能需要在代码中重写/删除一些内容
您可能想考虑在列表操作()上读取一点,并使用for循环:
list = [#items]
for item in list: #instead of a while loop
#do something
print item
另一个指针,声明name1=0是没有用的
name1 = 0 #you can remove this
name1 = input("Enter a name, if you want to quit, enter q: ")
while name1 != "q":
list1 = list1.append(name1)
outfile.writelines(list1)
此外,while循环正在无限期地向文件中写入行
您指示您的程序将name1附加到列表中,然后像@Blorgbeard所说的那样在文件中写入一些没有意义的内容
因此,您可能需要在代码中重写/删除一些内容
您可能想考虑在列表操作()上读取一点,并使用for循环:
list = [#items]
for item in list: #instead of a while loop
#do something
print item
提示:list1.append(…)
返回无。提示:list1.append(…)
返回无。