您的位置:首页 > 编程语言 > Python开发

Python——debug(二)

2016-03-09 11:30 555 查看
Python——debug

TypeError: ‘NoneType’ object is not subscriptable

字面意为:
NoneType
类型的对象显然不可索引;

NoneType
object 的一种可能情况即是:将一个没有返回值的函数(对,Python 允许函数没有返回值)赋给某一对象,则对象即为
NoneType
类型对象。

>>> l = [1, 2, 3]
>>> l = l.reverse()
>>> type(l)
NoneType


维度不匹配

传递序列即是传递序列,而非一个元素一个元素地进行传递

import numpy as np
import matplotlib.pyplot as plt
def f1(x):
return 2*x+1
def f2(x):
return 2
# 步长为小数,必须使用np.arange(),而不可使用生成整数序列的range
x = np.arange(-5, 5, .01)
y1 = f1(x)
y2 = f2(x)

plt.plot(x, y1)
# 出错,x和y2维度不匹配
plt.plot(x, y2)


对于函数f1,接收序列x,而不是分别接收其中的元素,输入映射为输出,且长度相同,一一对应。对于函数f2,接收一个具有一定长度的序列x,输出仅为一个
2
,而不是将序列x的每一个元素分别映射为1,所以输出y2的长度仅为2,故而维度不匹配。

y2 = np.ones(len(x))*2
plot(x, y2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: