这份笔记是我积累的python编程的小技巧或者一些小知识,方便自己忘了时候查阅,有需要的同学可以在这里Ctrl + F,看一下有没有自己需要的东西,本博客会持续更新。
技巧类:
选择与循环
(1)For 写在后面
有时候,我们会看到在list(列表)里面有for,这是在做什么呢?我们举个例子:
简单而言,是你想生成一个list,这个list里面的元素必须遍历上面的a,在遍历的时候假如这个数字对2取余数为0,我们就把这个数字添加进这个list里面,当然if可要可不要。等价于下面的代码:
temp = []for i in a: if i % 2 == 0 temp.append(i)
这个temp就是[2,4]
(2)if写在后面
value1 if condition else value2
condition 为true,value1执行,否则value2执行。
(3)判断变量是否在某个元素中
# 可以用这个语句判断这个变量在不在元祖里面某个元素中
if a in ("blue","red","green"):
# ...
列表
(1)Opencv读进来的图片是numpy的ndarray类型,可以创建一个列表然后append拓充这个列表达到存储一系列图像的作用。
(2)切片 a[x:y:z] 这个例子代表我们从x开始切片,a[x]这个位置也需要返回!(默认是0);y表示切片截止,a[y]这个位置不需要返回!(默认是len(a)),z表示步长,默认是1。
切片进行头增加操作:a[:3] = [1,2,3] 即可在a最前面加3个;同理进行尾增加操作a[len(a):] =[1,2,3]
切片进行删除操作类似,只是把右边换成[]
字符串
(1)字符串 * 数字
表示这个字符串复制
字典
(1)使用字典作为函数参数(可变长度的函数参数)
def demo(**p):
for i in p.items():
print(i);
if __name__ == '__main__':
demo(x=1,y=2,z=3);
结果:
python内置函数
(1)type
type(变量名)可以查看变量的类型。
(2)enumerate
一般放在for 里面获得可迭代对象的值还有下标,例如:
(3)import
可以从其它文件导入这个文件中的变量
from file's name import variable
(4)map
map(a,b) b是一个list,可以把list中的每一个元素,传给函数a,返回结果列表。
(5)lambda表达式
#用法
#lambda argument:expression
#作用就是生成一个函数,输入是argument,输出是expression运算出来的
#for example:
key = lambda x:x[1]-x[0]
a = (2,0)
key(a);
#相当于 返回 a[1] - a[0]
文件操作
for root,dirs,files in os.walk("xxx/xx"):
......
#这个函数可以随着 for循环 遍历整个指定的xxx/xx目录,topdown = true的话,就是从指定目录开始遍历,root是当前目录,dirs是当前目录的子目录,files是这个root目录里面的文件的所有文件名字。
for filename in files:
os.path.join(root,filename)
.......
#一般用这个方法把遍历的文件名打开。
Numpy
(1)针对 ndarray裁剪部分出来。就是对opencv图像里面的矩形框提出来.
k[y1:yh,x1:xh]
#提取了y1到yh行,再提取x1到xh列。
其它
from gen_plate_std import plate_temp_list,get_stand_plate,char_dict
(1)%matplotlib inline出错
(2)观看代码不必要逐句逐句看,首先把各个模块内容写下来(大概从注释和函数名字,变量名字看出来),然后对感兴趣的部分再仔细研究。