Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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 TypeError:“int”类型的对象没有len(),即使我没有使用函数“len()”_Python - Fatal编程技术网

Python TypeError:“int”类型的对象没有len(),即使我没有使用函数“len()”

Python TypeError:“int”类型的对象没有len(),即使我没有使用函数“len()”,python,Python,我一直在做一个预测扇贝种群变化的项目,但我的代码似乎有一个我无法识别的问题。如果有人能帮上忙,我会很感激的: import matplotlib.pyplot as plt S=[4000] a1 = 0.08 t = 50 for e in range(t-1): S.append(S[e]*a1+ S[e]) time = range(0,t) plt.plot(time, S) plt.axis(0, t, 0, 18000) plt.xlabel("Time") plt.ylab

我一直在做一个预测扇贝种群变化的项目,但我的代码似乎有一个我无法识别的问题。如果有人能帮上忙,我会很感激的:

import matplotlib.pyplot as plt
S=[4000]
a1 = 0.08
t = 50
for e in range(t-1):
    S.append(S[e]*a1+ S[e])
time = range(0,t)
plt.plot(time, S)
plt.axis(0, t, 0, 18000)
plt.xlabel("Time")
plt.ylabel("Scallops")
plt.title(r'Scallops Population')
plt.show()
此脚本返回正确的图形,但也返回以下错误消息:“int”类型的对象没有len 完全回溯:

Traceback (most recent call last):    
  File "<ipython-input-79-1e9eb32fa3a3>", line 1, in <module>
    runfile('C:/arquivos python/Entrega 4.py', wdir='C:/arquivos python')
  File "C:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)
  File "C:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "C:/arquivos python/Entrega 4.py", line 16, in <module>
    plt.axis(0, t, 0, 18000)
  File "C:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 1537, in axis
    return gca().axis(*v, **kwargs)
  File "C:\Anaconda\lib\site-packages\matplotlib\axes\_base.py", line 1633, in axis
    if len(v) != 4:
TypeError: object of type 'int' has no len()
承包商有以下签名:

matplotlib.pyplot.axis*v,**kwargs

[……]

>>>axisv

设置x轴和y轴的最小值和最大值,v=[xmin,xmax,ymin,ymax]

因此,您需要传递一个包含4个值的列表作为第一个参数,而不是4个参数:

plt.axis([0, t, 0, 18000])
您可以在堆栈跟踪中看到库如何检查第一个参数是否为具有4个值的列表:

if len(v) != 4:

但是在您的调用中,v是0,而它应该是[0,t,0,18000]。

那么第1633行是什么?发布完整回溯。请包括错误的完整回溯。您没有直接使用len,而是将一个对象传递给一个函数,该函数需要一个序列,在该序列中您将传递一个整数,回溯会告诉我们发生这种情况的位置。关于这一点,Sry只添加了完整的回溯。