Python 使用x值范围打印y函数时出错

Python 使用x值范围打印y函数时出错,python,numpy,matplotlib,Python,Numpy,Matplotlib,当试图绘制一个关于x值范围的函数时,会出现此错误 TypeError:不支持*:“float”和“range”的操作数类型 import numpy as np import matplotlib.pyplot as plt x = range(273, 1273) print(list(x)) y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3)) plt.plot(x, y, 'r')

当试图绘制一个关于x值范围的函数时,会出现此错误

TypeError:不支持*:“float”和“range”的操作数类型

import numpy as np
import matplotlib.pyplot as plt
x = range(273, 1273)
print(list(x))
y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3))
plt.plot(x, y, 'r')
plt.show()

使用函数
range
时,它使用python的
range
函数,该函数不能直接用于算术,因为它是迭代器。因此,您会得到一个错误,即不支持乘法:
range
float

当您使用NumPy的
arange
时,它具有处理此类算法的内置能力。因此,您的代码应该使用它

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(273, 1273) # This
y = -0.7765 + (0.014350 * x) - (0.000012209 * (x ** 2)) + (3.8289e-09 * (x ** 3))
plt.plot(x, y, 'r')
plt.show()

使用
np.arange
代替range旁注:
range
返回一个生成器,当您执行
打印(列表(x))
时会使用该生成器。这意味着您以后不能在
plt.plot(x,y,'r')
中再次使用它。