【问题标题】:TypeError: object of type 'int' has no len() [closed]TypeError:'int'类型的对象没有len()[关闭]
【发布时间】:2015-03-28 21:04:38
【问题描述】:

我已经尝试了很多方法来解决这个问题,但我找不到这个错误的答案:

TypeError: 'int' 类型的对象没有 len()

这是我的代码:

def CalculaDeltaT(Tn, Tm, Fr, T, P):
    return (Tn * Fr * T) - (P * T) - (Tm * T)

deltaT = CalculaDeltaT

def CalculaDeltaR(Rn, Fv, Rm, Mt, R):
    return (Rn * Fv * R) - (Rm * Mt * R)

deltaR = CalculaDeltaR    

def CalculaDeltaV(Vn, Vm, Mr, V):
    return (Vn * V) - (Vm * Mr * V)

deltaV = CalculaDeltaV

import matplotlib.pyplot as plt

tmax = 10
Tp = [0] * tmax

Tn = 0.2
Fr = 0.6
Tm = 0.3
P = 0.1

T = [0] * tmax

T[0] = 10

Rn = 0.4
Fv = 0.6
Rm = 0.1
Mt = 0.2

R = [0] * tmax    
R[0] = 10

Vn = 0.5
Vm = 0.8
Mr = 0.8

V = [0] * tmax    
V[0] = 10

print(len(V))
print(len(R))
print(len(T))
print(len(Tp))

for i in range (1, tmax): 
    T[i] = T[i-1] + deltaT(Tn, Fr, Tm, T[i-1], P)
    Tp[i] = i

plt.plot(Tp, T)
plt.axis(0, 10, 10, 1000)
plt.ylabel('T[Tubarões]')
plt.xlabel('Tempo[em anos]')
plt.title(r'T em função de Tempo')
plt.show()

我尝试过调试,但找不到问题所在。我是学生,如果这是一个基本问题,我很抱歉。

【问题讨论】:

  • 哪一行报错?
  • 包含有问题的完整错误。
  • 查看您在引发错误的行上调用的函数的文档。还可以考虑查看该函数在 pyplot tutorial 中的使用方式。您正在做的事情与应该如何使用该功能不同。你能看到吗?
  • 注意:您可能是指将函数的返回值分配给变量,例如deltaT = CalculaDeltaT()。相反,您将函数本身分配给deltaT

标签: python python-3.x matplotlib


【解决方案1】:

您收到此错误:

Traceback (most recent call last):
  File "/home/PycharmProjects/experiments.py", line 8, in <module>
    plt.axis(0, 10, 0, 100)
  File "/home/python3/lib/python3.4/site-packages/matplotlib/pyplot.py", line 1417, in axis
    v = ax.axis(*v, **kwargs)
  File "/home/python3/lib/python3.4/site-packages/matplotlib/axes/_base.py", line 1337, in axis
    if len(v) != 4:
TypeError: object of type 'int' has no len()

axis(v) 文档:

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

....如果len(*v)==0,可以传入xminxmaxyminymax 作为 kwargs 有选择地改变这些限制而不改变 其他人。

您应该使用plt.axis([0, 10, 0, 10])plt.axis(xmin=0, xmax=10, ymin=0, ymax=10)

(我还调整了 yminymax 以显示您当前的数据,因为 y 的值小于您设置的限制)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 2022-01-17
    • 2021-07-21
    相关资源
    最近更新 更多