Python
Python基础语法
Python中用缩进来代表代码块,因此需要准确地对齐
Python的变量很自由,除了不能以数字开头,其他都可以,除了一些奇怪的语言,测试过大部分语言的文字都可以作为变量名
字符串
- Python 中单引号 ‘ 和双引号 “ 使用完全相同。
- 使用三引号(‘ ‘ ‘ 或 “ “ “)可以指定一个多行字符串。
- 转义符 \
- 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r”this is a line with \n” 则 \n 会显示,并不是换行,这时会发现\n的高亮取消
- 按字面意义级联字符串,如 “this “ “is “ “string” 会被自动转换为 this is string。
- 字符串可以用 + 运算符连接在一起,用 ***** 运算符重复。
- Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- Python 中的字符串不能改变,即一旦给定就不能被改变其中的某个字符
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
- 字符串的截取的语法格式如下:**变量[头下标:尾下标:步长]**,从左向右是0 ~ n-1,从右向左是-n ~ -1
Python中的变量不需要声明,赋值后即可使用
在运算中,与C不同的是除法和乘方,Python中< / >默认为浮点除法,< // >才是整除。乘方不需要函数,
用< ** >来表示
列表
list列表用[ ]
- **列表名.append()**:在末尾加入
- **列表名.insert(位置, )**:在特定位置加入
- **列表名.pop(元素下标)**:删除某个元素
- 列表名[被换者下标] = 元素:用一个元素替换列表中的某个元素
tuple元组用( ),元组不可修改(元素中若有列表,则列表内元素可更改),在只有一个元素时,要在括号内加逗号< , >防止被认为是括号运算
dict / set基本用法
- dict
1 | d = {'DDD':6 , 32:7 , 6:8} # 名字:元素 |
set
相当于一个没有顺序的list,因此用for循环输出时没有固定顺序,加入元素用add(),删除用remove()
Python与OpenCV
注意:以下函数前均要有<cv2.>
inRange(a,b,c):a是要处理的图像,b、c分别为颜色的BGR下限和上限
imshow(“窗口名”,对象名称):展示对应图片且窗口以” “中名字命名
imread(对象名称):读取对象图片(路径)
返回值,轮廓层级 = findContours(image,mode,method):得到轮廓,mode是轮廓检索模式,method是轮廓近似方法
mode:有cv2.RETR_EXTERNAL(只检测外轮廓);
cv2.RETR_LIST;cv2.RETR_CCOMP;cv2.RETR_TREE(所有轮廓)
method:有cv2.CHAIN_APPROX_NONE(足够近的点连成线);cv2.CHAIN_APPROX_SIMPLE(几点框住面)
contourArea(对象名):计算对象面积
rectangle(对象名,(x,y),(x+w,y+h),颜色值,线条粗细):用矩形框住对应的图像
Python与Pytorch
注意:以下函数前均要有<torch.>
- Tensor:创建数组
- FloatTensor():创建浮点型tensor,括号内具体写或写维度
1 | a = torch.Tensor([[1, 2, 3], [4, 5, 6]]) |
- rand():随机,0~1的数
- randn():正态分布数
- arange(始,末,步长):左闭右开区间内以步长取值
- **zeros(),ones(),eye()**:与MATLAB相同
- empty():无初始化的数组
- mul():对应元素相乘相当于MATLAB的< .* >
- mm():矩阵乘法,直接用< * >是对应元素乘积
- dot():向量点乘
- mv(矩阵,向量):矩阵与向量乘积
- div(x,y):求商
搭建网络
nn.Linear(输入特征,输出特征)