Python 很难解决问题”;类型错误:';列表';对象不可调用";问题

Python 很难解决问题”;类型错误:';列表';对象不可调用";问题,python,python-3.x,Python,Python 3.x,错误: 回溯(最近一次调用上次):文件 “/root/PycharmProjects/Capstone2/main”,第207行,在 对于范围(0,4)中的paramIndex:TypeError:“list”对象不可调用 在处理上述异常期间,发生了另一个异常: 回溯(最近一次调用上次):文件 “/root/PycharmProjects/Capstone2/main”,第249行,在 打印(‘流结束’)文件“/usr/lib/python3/dist packages/picamera/cam

错误:

回溯(最近一次调用上次):文件 “/root/PycharmProjects/Capstone2/main”,第207行,在 对于范围(0,4)中的paramIndex:TypeError:“list”对象不可调用

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用上次):文件 “/root/PycharmProjects/Capstone2/main”,第249行,在 打印(‘流结束’)文件“/usr/lib/python3/dist packages/picamera/camera.py”,第758行,在 退出 self.close()文件“/usr/lib/python3/dist packages/picamera/camera.py”,第737行,在 关闭 self.stop_录制(splitter_port=port)文件“/usr/lib/python3/dist packages/picamera/camera.py”,第1198行,in 停止录音 encoder.close()文件“/usr/lib/python3/dist packages/picamera/encoders.py”,第431行,在 关闭 self.stop()文件“/usr/lib/python3/dist packages/picamera/encoders.py”,第815行,在 停止 super(PiVideoEncoder,self).stop()文件“/usr/lib/python3/dist packages/picamera/encoders.py”,第419行,中 停止 self.\u close\u output()文件“/usr/lib/python3/dist packages/picamera/encoders.py”,第349行,在 _关闭输出 mo.close_stream(输出,打开)文件“/usr/lib/python3/dist packages/picamera/mmalobj.py”,第371行,在 闭河 stream.flush()值错误:刷新关闭的文件

相关代码:

angle = []
distance = []
speed = []
current = []
timestamp = []
parameterList = []
parameterList.extend((angle, distance, speed, current, timestamp))                

            for paramIndex in range(0, 4): # LINE 207
                # Select Range
                range = getRange(index, paramIndex + 5)
                cell_list = sheet.range(range[0], range[1], range[2], range[3])

                cellIndex = 0

                for cell in cell_list:
                    try:
                        cell.value = parameterList[paramIndex][cellIndex]
                    except:
                        print("PI: " + str(paramIndex))
                        print("CI: " + str(cellIndex))
                        print("PL LEN: " + str(len(parameterList)))
                        print("P LEN: " + str(len(parameterList[paramIndex])))
我的想法:

这个错误使我认为paramIndex是一个列表,而不是一个整数,但代码在前四次迭代中执行良好。这让我觉得我的上一个列表(时间戳)有问题。我能想象的上一个列表的唯一错误是某种索引越界问题,但是…
永远不会命中except块
cellIndex达到的最大值为30(预计)
参数列表的长度为5(预计)
时间戳的长度为31(预期)


我被难住了。如果有人能提供一些帮助,我们将不胜感激。

paramIndex很好,但您需要避免调用与函数同名的变量。在本例中,range()是一个标准的python函数,但您创建了一个名为“range”的变量。此后,如果您试图使用范围函数,则会出现“对象不可调用”错误,因为它试图将您的范围对象用作标准范围函数


如果您坚持要保留范围对象名称,请使用xrange()而不是range(),在这里您定义for循环,并且不应该出现任何冲突。

getRange是用户定义的吗?是的。说得好,我没想过要检查它,因为当我早些时候测试它时,它似乎工作正常。这里可以看到完整的代码:不能将
范围
用作变量名,因为它是内置的。。这可能会导致冲突,因为您经常引用它!!事后看来,这是一个明显的错误,但我花了两个小时试图找出我的错误所在。谢谢你的接球!您知道为什么这个错误只发生在循环的后期迭代中吗?大多数支持python的IDE都会强调对内置变量的重新定义。它不会使您免于重新定义自己的变量或范围问题,但可以防止这个问题。你应该看看PyCharm。我实际上在用PyCharm!当我明天回到学校的时候,我会看看我是否忽略了任何下划线,或者做了什么使它们失效的事情。