Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中迭代简单循环_Python - Fatal编程技术网

在python中迭代简单循环

在python中迭代简单循环,python,Python,基本上,打开一个名为names.txt的文件,用它创建一个列表 然后,在另一个函数中,我将该列表作为参数传入。功能如下: #prints the list to the screen def printList(nameList): for n in nameList: print(n) 无论出于什么原因,它都会给我这个错误:“builtins.TypeError:'NoneType'对象不可iterable” 我假设它可能尝试了太多的迭代,却得到了一个空白位置?不确

基本上,打开一个名为names.txt的文件,用它创建一个列表

然后,在另一个函数中,我将该列表作为参数传入。功能如下:

#prints the list to the screen 
def printList(nameList):
    for n in nameList:
        print(n)
无论出于什么原因,它都会给我这个错误:“builtins.TypeError:'NoneType'对象不可iterable”

我假设它可能尝试了太多的迭代,却得到了一个空白位置?不确定。我试着按如下方式进行循环:

def printList(nameList):
    for n in range(0, namelist+1):
        print(n)
或者类似的东西,但这只是打印了一个编号的列表,而不是列表的内容

我将整个源文件放在pastebin上:

打开的文本文件的内容:


***作为补充说明,当我调试此文件时,我会得到所需的输出,但当它到达文件末尾时,它会给出异常***
帮助?

错误可能是因为
name\u list
None

看看您是如何初始化传递给函数的参数的

在第二个示例中,您有
nameList
nameList
,是否可能将两者混为一谈

例如


一般来说,使用看起来如此相似的变量名是一个坏主意。您有一个共同的问题:您认为
list.sort()
返回对已排序列表的引用。它没有;它返回
None

将第14行改为just

nameList.sort()
或者,如果您真的愿意,您可以这样做:

nameList = sorted(nameList)
这是因为命令/查询分离

编辑:另外,这一行显然是错误的:

result = nameList[n].rstrip('\n')
for
循环将
n
设置为其中一个名称。以上内容应为:

result = n.rstrip('\n')
但是,您需要打印找到名称的索引。要获取索引,您需要查找
enumerate()
并使用它:

for i, n in enumerate(nameList):

您不应该使用
list
作为变量名,因为它是Python中的内置类。最好使用
lst
L

如何创建传入的列表?问题是调用printList时,在某个地方使用
None
作为参数。你能粘贴调用代码吗?我通过将第14行更改为仅nameList.sort()修复了NONE问题。该列表是通过读取文本文件创建的,类似于:this=open('file.txt','r')this.readlines()this.close()我仔细检查了一下。第一个例子是准确的。第二个例子我只是随机输入来解释我尝试的修复。作为补充说明,当我调试这个时,我得到了所需的输出,但是当它到达文件末尾时,它给出了exception@user2962806,因此,当您到达文件末尾时,您将使用
None
nameList
调用函数。你也应该给我们看看那个代码对吧。。。因为它在寻找下一个不存在的位置“n”。问题是我如何纠正它?下面是完整的程序,如果有帮助的话:
nameList.sort()
已就位。它返回
None
。只需使用
nameList.sort()
即可!这确实解决了我遇到的问题。但是,现在我有另一个问题:修复了该问题。谢谢现在我有了搜索问题——不管我搜索哪个名字,它总是指向索引0……我想出了另一种获取索引的方法,但谢谢你给我展示了这一点。我最终使用的是一个累加器,在第一次迭代之前我将其设置为=并向每个循环添加+=1。工作。
for i, n in enumerate(nameList):