目录
python
一.环境配置
一.python环境配置安装
1.下载anaconda(库)
2.anaconda prompt
1)常用命令
- conda list:查anaconda中现有的库。(库名+版本+安装方式)
- pip install 包名:安装anaconda中还未有的库(以及包括库需要的依赖)。若装库遇到问题 此网站有python的外部包,ctrl+f搜寻,eg:xgboost‑1.3.1‑cp36‑cp36m‑win_amd64.whl:名称+版本+python版本+位数+whl(pip安装)。再用pip install安装。
- conda install 与pip下载源可能不一样,建议pip。
3.jupyter-notebook(可以注释+可视化+代码+方便查看中间信息)
- shift+enter:执行
- import os
print(os.path.abspath(’.’))显示当前路径,可新建文件夹然后将代码放进去。
4.安装opencv
1)pip install python-opencv
2)查看是否安装成功
python(环境名)
import cv2 (不报错即安装成功)
cv2.version(打印版本号)
exit()(退出)
同理,安装pip install opencv-contrib-python==(版本号与opencv一致):是opencv的扩展包
二.python操作
1.数值运算
- notebook只打印最后一行;
- 2 3 2^3 23:2**3
- x=3(赋值操作);type(x):打印类型;类型转换:float(x);y=‘123’,int(y)(数值才能转换);
- abs:绝对值;round:四舍五入;min;max;1.3e2=130:e2为10的幂数
- a=True(bool类型)
2字符串操作
- ‘x’+‘y’:字符串拼接; x=‘a’,x*3:三倍字符串的字符串;len(x):字符串长度(包括空格);
- 分割:x=‘1,2,2’ x.split(’,’):以’,'为分隔符切割,不写默认空格切割,切割的东西放在list中;
- 合并:x=‘a’,x.join(y):以x的字符串的方式合并y;
- 替换:x.replace(‘a’,‘b’):把x中的a替换成b;
- 大小写转换:x.upper();x.lower();
- 去空格: x=’ sad sda ',x.strip():去x得前后空格;x.lstrip():左空格,同理有空格;
- 传值:’{} {} {}’.format(‘a’,‘b’,‘c’) 输出:‘a b c’;按位置传值:’{2} {0} {1}’.format(‘a’,‘b’,‘c’) 输出:‘c a b’;按参数传值:’{a},{b} {c}’.format(a=1,b=4,c=3) 输出:‘1,4 3’
- 传值方式2:
x='a'
b=123
c=2.67
result='%s,%d %f'%(x,b,c)
result
结果:‘a,123 2.670000’
3.索引
- x为字符串,x[0],x[-1]:从后往前数从-1开始;数字表示位置,正数时从左到右从0开始,负数是从右到左从-1开始;
- 切片:取中间 x[0:4]:取从0到4,左闭右开;x[5:]:从5位置往后都取;x[:7]:左边全要;x[:]:全要;x[::2]:每隔两个取一个值。
4.list(元组?)
- list以[]来创建,里面不限类型,不限长度;x = [1,‘a’,56.0];
- len(x);
- a为list,b为list,a+b为拼接;a*3:复制三遍;a[0],a[-1]:索引;a[0] = 22:单个替换;a[:] = [‘a’,‘b’]:全部替换,注意个数;
- list操作与索引操作基本一样;
- 删除:del a[0]:注意:多次执行会改变内容;del a[3:]:删除3后面的所有;
- 判断list是否有某元素:8 in a;3 not in a;同样也可以判断字符串;
- list里面可以镶嵌list:多维数组;
- 计数:a.count(计数内容);
- 找某元素得索引:a.index(某元素);
- 添加:a.append(需添加得元素):一次只能加一个;插入:a.insert(插入位置,插入元素);a.remove(被remove得元素):如果有多个,默认第一个;弹出:a.pop(弹出位置):返回弹出得元素,弹出以后,a里面被弹出得元素已经不存在;
- 排序:a.sort():输出是排序后得结果,并且a中的元素已经被排序;若不想a发生变化,则b = sorted(a):a顺序未变,b内容被排序了;掉序:a.reverse():a的内容已经被掉序;
5.字典(key-value)
- 字典用{}定义,字符串用’’,list用[];
- 赋值:x[‘asd’]=594,key要唯一;a ={‘c’:1,‘b’:5}:字典之中无顺序:故只能用key去索引;
- 取值:x[‘key’]:通过key找value;x.get(‘key’);x.get(‘key’,‘do not exist’):当查询的key值不存在时,输出后面的信息(无论什么)
- 改:x[‘asd’]=345
- 删:del x[‘key’]
- 查:‘key’ in x
- key一般为字符串,value可以为任意的类型
- 弹出,x.pop(‘key’)与list一样
- 更新:x1,x2为两个字典,x1.update(x2):将x1中没有,x2有的增加;x1有,x2有的更新
- 打印所有的key:x.keys();打印所有的value:x.values();都打印:x.items()
6.集合(元素具有唯一性,一般用于去重)
- 赋值:x = {1,23,4,4,4}会自动去掉重复
- 并:a,b为集合,a.union(b)或者a|b
- 交:a.intersection(b)或者a & b
- 差:a.difference(b)或者a-b;b.dirrerence(a)=b-a;
- 包含:b.issubset(a):b是否包含于a 或者 b<=a(子集),b<a (真子集)
- 加:a.add(5)
- 删:a.remove(5)
- 更新:a.update([5,6,7])
- 弹出:a.pop():集合无序,故不能加参数
7.赋值机制
- x=10 y=x :则x、y指向同一个内存空间,查内存空间:id(x),判断内存空间是否相等:x is y
- x=1000,y=1000:它们的内存空间不一样
- x=1,y=1:在数值比较小的时候,x与y的内存空间可能一样
8.判断结构
- 以缩进来控制结构
x = 0
if x<0:
print('x<0')
elif x>0:
print('x>0')
else:
print('x=0')
9.循环结构
- while
x = 5
while x<7:
print(x)
x+=1
x=['a','b',5]
while x:
y=x.pop();
print(y)
- for
x={
'a','b','c',5}
for y in x:
print(y)
x='zhou er'
for i in range(len(x)):
print(x[i])
range 相当于给出索引
x