S_55520
高校学生
展开
-
关于python字符串的基本操作
字符串基本操作:(1)提取指定位置的字符:只需要在变量后面使用[]将字符索引括起来。索引包括正索引和负索引,正索引是从左到右标记,从0开始;负索引是从右向左标记,从-1开始。(2)字符串切片:就是截取字符串的片段,形成子字符串。切片方式为s[i:j],i表示截取字符串的开始索引,j代表结束索引。注意:在截取字符串时将包含其实字符,但不包含结束字符,是一个半开闭区域。...原创 2020-09-04 14:13:12 · 252 阅读 · 0 评论 -
python中关于变量与内存地址的关系
当我们创建一个变量时,在及其的内存中,系统会自动给该变量分配一块内存,用于存放变量值。这样说不好理解,直接用代码来说明:x = 4id(x) # 查看变量x指向的内存地址:30834096Ly = x # 将变量x重新赋给另一个新变量yid(y) # 地址为30834096Lx = 2 # 对变量x重新赋值print(x, y) id(x) # 地址为30834144Lid(x) # 地址为30834096L可以看出,一个变量在初次赋值是后获得一块内存空间来存放变量值,原创 2020-09-04 10:33:37 · 1200 阅读 · 0 评论 -
python中关于列表插入和删除操作
一 增添列表元素:(1)append:该元素会被追加到列表尾部。list.append(a)注意:append一次只能追加一个元素。(2)extend:能够将另一个列表添加到列表末尾,相当于两个列表进行拼接。list1.extend(list2)list1+=list2以上两种格式得到的效果相同。(3)insert:能够向列表中添加一个元素,并可以在指定位置添加。list.insert(3,'a') # 在列表中第4个位置添加a二 删除元素列表:(1)del:可以将列表中提取出原创 2020-09-05 15:38:35 · 927 阅读 · 1 评论 -
python视频转图片
def getframe(videoPath, svPath): cap = cv2.VideoCapture(videoPath) numFrame = 0 while True: if cap.grab(): flag, frame = cap.retrieve() if not flag: continue else: # cv原创 2020-09-07 16:46:41 · 111 阅读 · 0 评论 -
python中的数据类型
python中有6个标准的数据类型:数字(number),字符串(string),列表(list),字典(dictionary),集合(sets)。python3支持的数值型数据类型有int, float. bool complex分为数值型数据和字符型数据原创 2020-09-04 10:57:27 · 61 阅读 · 0 评论 -
python中定时器的用法
关于定时器这块一直是迷迷瞪瞪的,到现在也没有彻底理解,在网上找到一些大神写的代码,记录在这里,以备不时之需!!**Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器startTimer,一种是使用QTimer类我的理解是定时器主要是以下这几行:self.syf = QtCore.QTimer()self.syf.start(30)self.syf.timeout.connect(self.AlertPicShow)其中: self.syf.timeout.connect(s原创 2020-09-02 09:12:33 · 1336 阅读 · 0 评论 -
关于python的字符比较
字符的比较本质是字符的ASCII编码的比较。python提纲了两个可以进行字符与编码转换的函数(1)ord函数:将ASCII字符转换为对应的数值print(ord('a')) # 97(2)chr函数:将数值转换为对应的ASCII字符print(chr(97)) # a...原创 2020-09-04 14:39:29 · 457 阅读 · 0 评论 -
顺序结构代码出现闪退问题的解决方法之一
如果程序是顺序结构,在没有按照既定步骤进行操作的话会导致程序奔溃,出现闪退现象。解决如下: 【注】本人环境是win10,python3.7 首先通过setCheckable函数设置QT按钮属性,true为选中,否则未被选中。类似: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200402221410253.png)可选择的按钮按下之...原创 2020-04-02 22:53:15 · 452 阅读 · 0 评论 -
python运行时报错AttributeError: ‘NoneType‘ object has no attribute ‘shape‘
用python显示图片时报出错误:AttributeError: ‘NoneType’ object has no attribute ‘shape’检查了图片的路径发现没有错误,然后将图片路径中的中文格式换掉,运行正常!!原创 2020-08-31 11:02:54 · 2166 阅读 · 0 评论 -
Python中图片相对路径的设置操作
本人环境win10, python3.7相对路径的相对意思是不完整路径,这个相对指的就是相对于当前文件夹路径,其实就是你编写的这个py文件所放的文件夹路径。绝对路径:由于绝对路径在自己电脑上使用比较方便,其他电脑使用时图片的绝对路径可能会发生变化,导致程序出错。因此设置为相对路径比价保险。一开始, 设置成 first_frame = cv2.imread(’./images/video11.jpg’)会报错,错误提示为:Traceback (most recent call last):Fi原创 2020-08-27 16:57:13 · 3882 阅读 · 2 评论 -
Python中字典的相关操作
在python中,字典是属于映射类型的数据结构,其元素都具有与之对应且唯一的键,字典主要通过键来访问对应的元素。此外,元素在字典中没有严格的顺序关系。注意:字典中的键必须使用不可变数据类型的对象,如数字,字符串,元组等,且键是不允许重复的。;而值是一颗任意类型的,且在字典中可以重复。一 字典的创建(1)使用{}创建。这种方法与列表中的[]类似,不再赘述。(2)使用dict函数创建。dict函数的作用是指上主要是将包含双值子序列的序列对象转化为字典类型。双值子序列就是只包含两个元素的序列,如(“age原创 2020-09-07 16:38:17 · 142 阅读 · 0 评论 -
利用python播放本地视频文件
python结合opencv播放视频文件,代码如下:视频处理video = cv2.VideoCapture(“C:/Users/Administrator/Desktopideo.mp4”)if not video.isOpened():print(“Could not open video”)sys.exit()while True:ok, frame = video.read()if ok:cv2.imshow(“Tracking”, frame)if cv2.waitKey(10原创 2020-07-29 16:59:04 · 6711 阅读 · 3 评论 -
python的切片操作
对列表进行处理的时候,处理要提取当中某个元素外,还可能需要提取列表中的字列表元素,这就需要通过列表的切片操作来完成。具体切片的操作格式为sequence_name[start????step].当步长值为正数时,表示切片从左往右提取元素;若为负数,则表示从右往左方向提取。步长为正:mylist[2:7:2] 步长为负:mylist[-2:-7:-2] 列表反转:mylist[::-1] # 提取从右往左之间的全体元素,步长为1...原创 2020-09-05 15:05:50 · 231 阅读 · 0 评论 -
python图片转视频
def makevideo(path, fps): """ 将图片合成视频. path: 视频路径,fps: 帧率 """ fourcc = cv2.VideoWriter_fourcc(*"mp4v") path1 = 'C:/Users/Administrator/Desktop/rocker1' # 图像文件夹路径 im = Image.open('C:/Users/Administrator/Desktop/rocker1/rocker1.jpg') # 其中一原创 2020-09-07 16:42:52 · 738 阅读 · 0 评论 -
python批量修改文件夹中的图片名称
有时候需要修改文件夹中所有图片的名字,手动修改太麻烦,浪费时间。于是找到某大神的一段代码~~~path = "../rocker2"fileList = os.listdir(path) # 待修改文件夹print("修改前:" + str(fileList)) # 输出文件夹中包含的文件os.chdir(path) # 将当前工作目录修改为待修改文件夹的位置num =1 # 名称变量for fileName in fileList: # 遍历文件夹中所有文件 pat = ".原创 2020-09-08 09:25:05 · 1304 阅读 · 1 评论 -
Python-基本文件操作
一 创建和打开文件:open()函数功能:1.打开一个不存在的文件时先创建该文件(mode的参数值指定w、w+等)。格式为:file=open(‘message.txt’,‘w’)2. 以二进制形式打开文件。file=open(‘picture.png’,‘rb’)3. 打开文件时指定编码方式。file=open(‘notice.txt’,encoding=‘utf-8’)二 关闭文件:file.close()注意:如果在打开文件时抛出异常,将导致文件不能被及时关闭,为避免这种i情况,可以使用py原创 2021-09-14 21:50:31 · 70 阅读 · 0 评论 -
面向对象(1)
python中,世间万物皆对象!通常将对象分为两部分:静态部分(属性)、动态部分(行为)。而类是封装对象的属性和行为的载体!!python中,类是一种抽象概念,在勒种,可以定义每个对象共有的属性和方法,而对象是类的实例。面向对象的三大基本特征:(1)封装:将对象的属性和行为封装起来,而载体就是类。思想是对客户隐藏程序实现细节。(2)继承:子类通过继承复用父类的属性和行为的同时,添加了子类特有的属性和行为,实现重复利用。如平行四边形和四边形的关系。(3)多态:将父类对象应用于子类的特征。一 类原创 2021-09-14 15:03:10 · 66 阅读 · 0 评论 -
python实现冒泡排序
冒泡排序是比较经典的一种排序方法。冒泡排序主要就是从序列的左端开始重复比较相邻两个元素的大小,根据比较的结果来判断是否需要交换两个元素的位置,最终使得序列元素满足升序或降序排列。python实现:def bubble_sort(list):# 冒泡排序n=len(list)flag=False # 外层循环控制每轮的比较次数 for i in range(n-1): # 内层循环用于比较元素并交换 for j in range(n-i-1): ...原创 2021-09-25 19:57:40 · 190 阅读 · 0 评论 -
Python实现斐波那契数列
斐波那契数列,又称为黄金分割数列、“兔子数列”,数列格式为:1、1、2、3、5、8、13、21、34…python实现:#递归方式生成前20项lis=[]for i in range(20): if i==0 or i==1: # 第1,2项都为1 lis.append(i) else: lis.append(lis[i-2]+lis[i-1]) # 从第三项开始每项值为前两项值之和print(lis)如上!!!...原创 2021-10-07 14:39:00 · 1379 阅读 · 0 评论 -
python调试
1.使用断点进行调试。2.使用assert语句(断言)进行调试。实例如下:通常情况下,assert语句可以和异常处理语句结合使用,所以代码可以修改为:assert语句只在调试阶段有用,可以关闭assert语句:python -O moudle.py如上!!!!...原创 2021-09-14 17:02:03 · 85 阅读 · 0 评论 -
python实现二分法
二分法和猜数游戏类似,猜的时候猜中间的那个数,折半查找。就数组来说,数组越长,梯度下降越快,二分查找优势越明显。python代码实现:def sun_search(list,item):low=0high=len(list)-1n=0while low<=high:mid=int((low+high)/2)guess=list[mid]n+=1if list[mid]==item:print(n)return midif list[mid]<item:lo...原创 2021-09-25 20:12:54 · 293 阅读 · 0 评论 -
对于python 子类继承父类的理解
一直不太能理解子类父类之间继承关系的运用,用以下代码来说明:class Cat():def __init__(self): self.name = '猫' self.age = 4 self.color = newColordef run(self): print(self.name,'--在跑')def getName(self): return self.namedef getAge(self): return self.ageclass bosi(Cat原创 2020-09-08 21:01:34 · 436 阅读 · 0 评论 -
python实现冒泡排序
冒泡排序是比较经典的一种排序方法。冒泡排序主要就是从序列的左端开始重复比较相邻两个元素的大小,根据比较的结果来判断是否需要交换两个元素的位置,最终使得序列元素满足升序或降序排列。 python实现:def bubble_sort(list):# 冒泡排序n=len(list)flag=False # 外层循环控制每轮的比较次数 for i in range(n-1): # 内层循环用于比较元素并交换 for j in range(n-i-1): ...原创 2021-09-25 19:52:40 · 226 阅读 · 0 评论 -
面向对象(2)
(2)双下划线:表示私有属性。只允许定义该方法的类本身进行访问,且不能通过类的实例进行访问。但是可以通过“类的实例名.类名__xxx”访问,但是不能直接通过实例名+属性名访问。(3)首尾双下划线:表示定义特殊方法,一般是系统定义名字,如__init__().二 属性(上一节属性将返回所存储的值,本节的属性则是一种特殊的属性)创建用于计算的属性通过@property(装饰器)将一个方法转化为属性,从而实现用于计算的属性。将方法转换为属性后,可直接通过犯法名来访问方法。语法格式为:为属性添加原创 2021-09-14 15:56:52 · 71 阅读 · 0 评论 -
python解决图片路径中有中文的情况
我们常用的cv2.imread()只能读取路径是英文的图片,如果出现图片路径带中文的情况,cv2.imread()就无法成功读取了, 需要用到cv2.imencode()!image = 'D:\监控软件报警图片\image.jpg'image = cv2.imdecode(np.fromfile(image, dtype=np.uint8), -1) print(image)此外,如果要保存图片的话,使用cv2.imwrite()同样无法成功,要使用cv2.imencode():p_path原创 2020-09-15 16:00:53 · 2258 阅读 · 0 评论 -
python打包多类型文件
环境win10, python3.7,pyinstaller3.6一 下载pyinstaller(1)cmd中pip install pyinstaller(2)pycharm中file—settings—project Interpreter----右上角‘+’----搜索puinstaller----install package成功即可!二 主程序打包打开cmd,cd到程序文件夹位置由于文件夹中有多个子文件夹,包含多个程序,找到主程序的位置,使用命令行:pyinstaller -F原创 2020-09-21 10:31:42 · 833 阅读 · 2 评论 -
以主程序的形式执行
在与该模块同级的目录下创建一个main.py模块,调用以上模块:结果:由结果可以看出,导入模块后,不仅输出了全局变量的值,而且模块中原有的测试代码也被执行了。如果要是只输出全局变量的值,可以将以上模块修改为:再次执行main.py,结果为;...原创 2021-09-14 16:21:09 · 186 阅读 · 0 评论 -
python:解决imshow出来的图像太大的问题
原本的显示图像的代码:cv2.imshow("findCorners", img)cv2.waitKey(0)cv2.destroyAllWindows()结果:修改后:# # 显示cv2.namedWindow('findCorners', 0) cv2.resizeWindow('findCorners', 700, 900) # 自己设定窗口图片的大小cv2.imshow("findCorners", img)cv2.waitKey(0)cv2.destroyAll原创 2020-09-28 16:11:32 · 20889 阅读 · 4 评论