Python杂记
一.函数
1.numpy 模块中的nonzero函数
nonzero返回的数非零元素的下标。
如果输入是单维度的时候它的返回值只有一个;如果输入是多个维度的话,那么它的返回值也是多个维度的。并且的它的每个维度的值表示的是非零元素在当前维度中的下标。
i.e
a = [true, flase, flase]
nonzero(a)
那么此时的它的返回值应该是((0))
a=matrix[[1,0,0],[0,1,0],[0,0,1]]
nonzero(a)
那么此时它的返回值应该是((0,1,2),(0,1,2)),可以看到此时返回了两个参数,其实这两个参数就表示两个维度中(对应于a中的纵坐标和横坐标)对应的非零元素的下标。比如第0行第0列的是非零元素,也就是第一个维度的下标为0,第二度维度的下标也为0,所以可以看到返回的两个参数中的第一个值都是0。(1,1),(2,2)的结果同理。
2.hasattr,setattr,getattr的区别
hasattr(object, name):判断object是否含有name属性,返回boolean值,有的话是true,否则为false
setattr(object, name, value):设置object 的name属性为value值
getattr(object, name[,defalut]):获取object的name属性的值(如果存在这个属性的话,就获取它的值,不存在这个值的话,有default值就返回default值。没有的话就为缺省值)
二.符号
在python 中'//'表示整数除法
i.e:
3.0/2:
1.5
3.0//2:
1.0
三.错误与异常
1.预定义理行为
我们知道在打开一个文件之后要及时的关闭文件,为了避免忘记文件的关闭,我们可以进行预定义清理行为
//dangerous method for line in open(filename): print(line) // safe method with open(filename) as f for line in f: print(line)