笔记
文章平均质量分 59
谁偷了我的小可爱
这个作者很懒,什么都没留下…
展开
-
try/except...else
try/except…elsetry/except语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。else子句将在try子句没有发生任何异常时执行。异常处理并不仅仅处理那些直接发生在try子句中的异常,还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。try-finally语句try-finally语句无论是发生异常都将执行最后的代码实例:详细可参考https://www.runoob.com/python3/python3..原创 2021-09-26 20:28:34 · 733 阅读 · 0 评论 -
Opencv图像处理--形态学操作
1 连通性在图像中,最小的单位是像素,每个像素周围有8个临界像素,常见的邻接关系有3种:4邻接、8邻接和D邻接。分别如下图所示:4邻接:像素p(x,y)的4邻域是:(x+1,y);(x-1,y);(x,y+1);(x,y-1),用N4§表示像素p的4邻域D邻接:像素p(x,y)的D邻域是:对角上的点(x+1,y+1);(x+1,y-1);(x-1,y+1);(x-1,y-1),用ND§表示像素p的D邻域8邻接:像素p(x,y)的8邻域是:4邻域的点+D邻域的点,用N8§表示像素p的8邻域连通原创 2021-05-16 11:12:19 · 641 阅读 · 1 评论 -
Opencv图像处理--几何变换
1 图像缩放缩放是对图像的大小进行调整,即使图像放大或缩小。1.API`cv2.resize(src, dsize, fx=0, fy=0, interpolation=cv2.INTER_LINEAR)`参数:src:输入图像dsize:绝对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子即可interpolation:插值方法示例import numpy as npimport cv2 as cvimport matplotlib.pyplo原创 2021-05-09 10:40:48 · 262 阅读 · 1 评论 -
图像的加法
你可以使用Opencv的cv.add()函数把两幅图像相加,或者可以简单地通过numpy操作添加两个图像,如res = img1+img2。两个图像应该具有相同的大小和类型,或者第二个图像可以是标量值。注意:Opencv加法和Numpy加法之间存在差异。Opencv的加法是饱和操作,而Numpy添加是模运算。代码:import numpy as npimport matplotlib.pyplot as pltimport cv2 as cv# 读取图像rain = cv.imread(".原创 2021-05-06 23:02:16 · 167 阅读 · 0 评论 -
使用opencv绘制基础图像
1 绘制直线cv.line(img, start, end, color, thickness)参数:img:要绘制直线的图像start,end:直线的起点和终点color:线条的颜色thickness:线条宽度2 绘制圆形cv.circle(img, centerpoint, r, color, thickness)参数:img:要绘制图形的图像centerpoint,r:圆心和半径color:线条的颜色thickness:线条宽度,为-1时生成闭合团并填充颜色3原创 2021-04-25 17:46:11 · 180 阅读 · 0 评论 -
使用matplotlib和opencv将彩色图转换为灰度图
1 读取图像APIcv.imread()参数:读取方式的标志cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。cv.IMREAD*GRAYSCALE:以灰度模式加载图像cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式。可以使用1,0,-1来代替上面三个标志参考代码import numpy as npimport matplotlib.pyplot as pltimport cv2 as c原创 2021-04-25 10:36:00 · 2853 阅读 · 2 评论 -
机器学习基本环境及图像绘制
1.机器学习概述1.1人工智能概述1.人工智能起源图灵测试达特茅斯会议2 .人工智能、机器学习和深度学习垃圾邮件分类属于机器学习,识别物体属于深度学习;机器学习是人工智能的一种实现途径;深度学习是机器学习的一种方法发展而来3.主要分支介绍1.计算机视觉人脸识别2.自然语言处理语音识别语义识别3.机器人4.人工智能发展必备三要素1.数据2.算发3.计算力5.CPU,GPUGPU – 计算密集型CPU – IO密集型1.2机器学习工作流程1.定义数据、自动分析、原创 2020-10-14 17:17:45 · 578 阅读 · 0 评论 -
format
1、format的基本用法(1)不带编号,即 {}(2)带数字编号,可调换顺序,即 {1} ,{2}(3)带关键字,即 {a} ,{tom}name = 'xz'gender = '女'age = 18print('姓名:%s,性别:%s,年龄:%d'%(name,gender,age))print('姓名:{},性别:{},年龄:{}'.format(name,gender,age))# 有数字编号的可以反复使用print('姓名:{0},性别:{1},年龄:{2}'.format原创 2020-10-14 14:50:03 · 119 阅读 · 0 评论 -
文件的其他操作
1、读取模式(1)读取文本文件① t 读取文本文件(默认值)② size 是以字符为单位的(2)读取二进制文件① b 读取二进制文件② size 是以字节为单位2、tell()- 查看当前读取的位置3、seek()- 可以修改当前读取的位置- seek()需要两个参数(1)要切换到的位置(2)计算位置方式① 0 从头计算,默认值② 1 从当前位置计算③ 2 从最后位置开始计算4、其他操作(1)os.listdir()- 获取指定目录的目录结构,需要一个路径作原创 2020-10-05 23:02:09 · 89 阅读 · 0 评论 -
文件的打开和关闭
一、文件(File)- 通过Python程序来对计算机中的各种文件进行增删改查的操作- I / O(Input / Output)- 操作文件的步骤①打开文件②对文件进行各种操作(读、写),然后保存③关闭文件1、打开文件(1) 使用open函数来打开一个文件(2) 参数:file 要打开文件的名字(路径)返回值:返回一个对象,这个对象就代表了当前打开的文件(3) 如果目标文件和当前文件在同一级目录下,则直接使用文件名即可- 在window系统使用路径时,可以使用 / 来代替 \原创 2020-10-05 20:10:47 · 1388 阅读 · 0 评论 -
异常
一、异常- 程序在运行过程中,不可避免的出现一些错误,这些错误在程序中,将其称为异常- 程序运行过程中,一旦出现异常会导致程序立即终止,异常以后的代码全部都不会执行二、处理异常的方法1、try 语句try :代码块(可能出现的语句)except 异常类型 :代码块(出错以后的处理方式)else :代码块(没出错时要执行的语句)finally :代码块(该代码块总会执行)① 如果except后不跟任何内容,则此时他会捕获到所有的异常② 如果在except后跟着异常的类型,那么此时原创 2020-10-05 13:12:26 · 97 阅读 · 0 评论 -
Python标准库
一、开箱即用- 为了实现开箱即用的思想,python中提供了一个模块的标准库,在这个标准库中,有很多很强大的模块可以直接使用,并会随着python的安装一同安装1、sys模块- 提供了一些变量和函数,使我们可以获取到python解析器的信息或者通过函数来操作python解析器(1)引入sys模块 : import sys(2)sys.argv- 获取执行代码时,命令行中所包含的参数- 该属性是列表,列表中保存了当前命令的所有参数(3)sys.modules- 获取当前程序中的原创 2020-10-05 10:38:36 · 97 阅读 · 1 评论 -
模块
一、模块(module)1、模块化(1)指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序- 不采用模块化,统一将所有的代码编写到一个文件中- 采用模块化,将程序分别编写到多个文件中(2)模块化的优点:① 方便开发② 方便维护③ 模块可以复用2、创建模块- 在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件注意:模块名要符号标识符的规范3、引用模块-在一个模块中引入外部模块① import 模块名(模块名,就是原创 2020-10-04 12:05:32 · 353 阅读 · 1 评论 -
特殊方法
一、特殊方法(魔术方法)- 特殊方法都是使用__开头和结尾的- 特殊方法一般不需要手动调用,需要在一些特殊情况下自动执行1、str()(1)这个特殊方法会在尝试将对象转换为字符的时候调用(2)它的作用可以用来指定对象转换为字符串的结果(print函数)2、repr()(1)这个特殊方法会在对当前对象使用repr()函数时调用(2)它的作用是指定对象在 ‘ 交互模式 ’ 中直接输出的结果3、 object.gt(self,other) 大于(1)会在对象做大于比较的时候调用原创 2020-09-29 17:00:22 · 453 阅读 · 0 评论 -
类中的属性和方法、垃圾回收
一、类中的属性和方法1、类属性(1)直接在类中定义的属性是类属性(2)类属性可以通过类或类的实例访问到,但是类属性只能通过类对象来修改,无法通过实例对象修改2、实例属性(1)通过实例对象添加的属性属于实例属性(2)实例属性只能通过实例对象来访问和修改,类队形无法访问修改3、实例方法(1)在类中定义,以self为第一个参数的方法都是实例方法,(2)实例方法在调用时,Python会讲调用对象作为self传入(3)实例方法可以通过实例和类去调用- 当通过实例调用时,会自动将当前调用队形作为s原创 2020-09-29 15:16:03 · 239 阅读 · 0 评论 -
多态
一、多态1、多态是面向对象的三大特征之一2、多态从字面上理解是多种形态,一个对象可以以不同的形态去呈现# 定义两个类class A: def __init__(self,name): self._name = name @property def name(self): return self._name @name.setter def name(self,name) self._name = nam原创 2020-09-29 10:58:05 · 90 阅读 · 0 评论 -
继承(方法的重写、多重继承)
一、继承1、定义一个类Animal(动物)- 这个类中需要两个方法:run() sleep()class Animal : def run(self): print('动物会跑~~') def sleep(self): print('晚安~~~') 2、定义一个类Dog(狗),这个类中需要三个方法:run() sleep() bark()- 上面的类,能够实现需要的大部分功能,但是不能实现全部功能- 怎样让上面这个类实现全部的功能呢原创 2020-09-25 22:49:59 · 536 阅读 · 0 评论 -
封装[ 简介、隐藏类的属性、property装饰器]
一、封装1、封装是面向对象的三大特征之一- 封装指的是隐藏对象中一些不希望被外部所访问到的属性或方法2、如何隐藏一个对象中的属性- 将对象的属性名,修改为一个外部不知道的名字class Dog : def __init__(self,name): self.hidden_name = name def say_hello(self) : print('大家好,我是%s'%self.hidden_name)d= Dog('汪汪')# 修改为一个外原创 2020-09-24 11:56:44 · 172 阅读 · 0 评论 -
类的特殊方法
原创 2020-09-23 23:40:21 · 77 阅读 · 0 评论 -
对象的初始化
一、对象的初始化1、前提:- 目前来说,对于Person类来说name是必须的,并且每一个对象中的name属性基本上都是不同,而现在是将name属性在定义为对象以后,手动添加到对象中,这种方式很容易出现错误- 因此希望,在创建对象时,必须设置name属性,如果不设置对象将无法创建,并且属性的创建应该是自动完成的,而不是在创建对象以后手动完成- 如下:手动向对象添加name属性的方法class Person : def say_hello(self) print ('大家好,我是%原创 2020-09-23 23:36:34 · 591 阅读 · 0 评论 -
类的定义
一、类的定义1、类和对象都是对现实生活中或程序中的内容的抽象,由两部分组成,数据(属性)和行为(方法)# 尝试定义一个表示人的类class Person : # 在类的代码块中,我们可以定义变量和函数 # 在类中我们所定义的变量,将会称为所有的实例的公共属性 # 所有实例都可以访问这些变量 name = 'xz' # 公共属性,所有实例都可以访问 # 在类中也可以定义函数,类中的定义的函数,我们称之为方法 # 这些方法可以通过该类的所有实例来访问原创 2020-09-23 21:10:51 · 1246 阅读 · 0 评论 -
面向对象,类
一、面向对象1、什么是对象(1)对象是内存中专门用来存放数据的一块区域(2)对象可以存放各种数据(比如:数字、布尔值、代码)(3)对象由三部分组成:①对象的标识(id)②对象的类型(type)③对象的值(value)2、面向过程的语言(1)面向过程指将我们的程序的逻辑分解为一个一个的步骤,通过对每个步骤的抽象,来完成程序(2)例子:- 孩子上学1、妈妈起床2、妈妈上厕所3、妈妈洗漱4、妈妈做早饭5、妈妈叫孩子起床6、孩子上厕所7、孩子洗漱8、孩子吃饭9、孩子背书包上学原创 2020-09-21 21:48:54 · 69 阅读 · 0 评论 -
闭包,装饰器引入与使用
一、闭包1、将函数作为返回值返回,也是一种高阶函数,这种高阶函数称为闭包,通过闭包可以创建一些只有当前函数能访问的变量,可以将一些私有的数据藏到闭包中2、形成闭包的要件(1)函数嵌套(2)将内部函数作为返回值返回(3)内部函数必须要使用外部函数的变量def fn() : a = 10 # 函数内部再定义一个函数 def inner() : print ('我是fn2',a) # 将内部函数inner 作为返回值返回 return inner原创 2020-09-20 22:53:12 · 64 阅读 · 0 评论 -
高阶函数
一、函数式编程1、在Python中,函数是一等对象(1)一等对象一般会具有以下特点①对象是在运行时创建的②能赋值给变量或作为数据结构中的元素③能作为参数传递④能作为返回值返回(2)高阶函数①接受一个或多个多个函数作为参数②将函数作为返回值返回二、高阶函数1、接收函数作为参数,或者将函数作为返回值的函数就是高阶函数# 创建一个列表l = [1,2,3,4,5,6,7,8,9,10]# 定义一个函数# 可以将指定列表中的所有的偶数,保存到一个新的列表中返回def fn(list原创 2020-09-20 21:03:07 · 132 阅读 · 0 评论 -
递归
1、求10的阶乘(10!)# 创建一个变量保存结果n = 10for i in range(1,10): # 表示数字从1~9 n *= iprint (n)2、创建一个函数,用来求任意数的阶乘def fun(n) : ''' 该函数用来求任意数的阶乘 参数: n 要求阶乘的数字 ''' # 创建一个变量,来保存结果 result = n for i in range(1,n) :原创 2020-09-15 23:21:09 · 128 阅读 · 0 评论 -
作用域,命名空间
一、作用域与命名空间1、作用域(scope)(1)作用域指的是变量生效的区域def fn(): a = 10 # a定义在了函数内部,所以它的作用域就是函数的内部,函数外部无法访问 print ('函数内部:','a =',a)fn()print('函数外部:','a =',a)(2)在python中一个有两种作用域①全局作用域- 全局作用域在程序执行时创建,在程序执行结束时销毁- 所有函数以外的区域都是全局作用域- 在全局作用域中定义的变量,都属于全局变量,全局变量可原创 2020-09-15 22:01:09 · 86 阅读 · 0 评论 -
返回值、文档字符串
一、返回值1、返回值就是函数执行以后返回的结果可以通过return 来指定函数的返回值可以直接使用函数的返回值,也可以通过一个变量来接收函数的返回值def fn() : # return 后面跟什么值,函数就会返回什么值 # return 后面可以跟任意的对象,返回值甚至可以时一个函数 # return 100 # return 'hello' # return [1,2,3] # return {'k':'v'} def fn2() :原创 2020-09-14 21:56:45 · 162 阅读 · 0 评论 -
不定长参数,解包
一、不定长参数1、在定义函数时,可以在形参前边加上一个*,这样这个形参将会获取到所有的实参,它将所有的实参保存到一个元组中注意:*1、带星号的形参只能有一个2、 带星号的参数,可以和其他参数配合使用3、可变参数不是必须卸载最后,但是注意,带的参数后的所有参数,必须以关键字参数的形式传递4、如果在形参的开头直接写一个,则要求我们的所有的参数必须以关键字参数的形式传递5、形参只能接受位置参数,而不能接收关键字参数# *a会接受所有的位置实参,并且将这些实参同意保存到一个元组中(装包)def fn原创 2020-09-14 16:18:18 · 522 阅读 · 0 评论 -
函数简介,函数参数
一、函数(function)1、函数简介(1)函数也是一个对象,对象是内存中专门用来存储数据的一块区域。(2)函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用2、创建函数:(1)def 函数名 ([形参1,形参2,…形参n]):代码块(2)函数中保存的代码不会立即执行,需要调用函数代码才会执行3、调用函数(1) fn是函数对象,fn()调用函数print是函数对象,print()调用函数# 定义一个函数def fn() : print('这是我的第原创 2020-08-21 15:45:54 · 706 阅读 · 0 评论 -
字典,集合
一、字典1、删除(1)deld = {'a':1,'b':2,'c':3}# 使用del来删除字典中的key-valuedel d['a']del d['b']del d['z'] # z不存在,报错print (d)(2)popitem# 随机删除字典中的一个键值对,一般都会删除最后一个键值对# 删除之后,它会将删除的key-value作为返回值返回# 返回的是一个元组,元组中有两个元素,第一个元素是删除的key,第二个是删除的value# 当使用popitem原创 2020-08-20 21:31:28 · 90 阅读 · 0 评论 -
可变对象,字典
一、可变对象1、每个对象中都保存了三个数据:(1)id (标识)(2)type(类型)(3)value(值)2、列表就是一个可变对象a = [ 1 , 2 , 3 ]3、a[0] = 10(改对象)(1)这个操作是在通过变量去修改对象的值(2)这种操作不会改变变量所指向的对象(3)当修改对象时,如果有其他变量也指向了该对象,则修改也会在其他变量中体现# 可变对象a = [1,2,3]print ('修改前:',a,id(a))# 通过索引修改列表a[0] = 10print原创 2020-08-19 21:16:30 · 590 阅读 · 0 评论 -
range() 和 元组tuple
一、range()1、range()是一个函数,可以用来生成一个自然数数列2、该函数需要三个参数(1)起始位置(可以省略,默认是0)(2)结束位置(3)步长(可以省略,默认是1)r = range(5) # 生成一个这样的序列【0,1,2,3,4】r = range(0,10)print (list (r))3、通过range()可以创建一个执行指定次数的for循环for()循环除了创建方式以外,其余的都和while一样,包括else、break、continue都可以在for循原创 2020-08-17 22:06:24 · 1705 阅读 · 0 评论 -
EMS(Employee Manager System 员工管理系统)练习
一、员工管理系统1、功能(1)查询显示当前系统当中的所有员工(2)添加将员工添加到当前系统中(3)删除将员工从系统当中删除(4)退出# 显示系统的欢迎信息print ('-'*20,'欢迎使用员工管理系统','-'*20)# 创建一个列表,用来保存员工的信息,员工的信息以字符串的形式同意保存到列表emps = ['肖战\t29\t男\t四川','邓伦\t28\t男\t河北']# 创建一个死循环while True : # 显示用户的选项 print ('请选择您原创 2020-08-17 17:33:17 · 468 阅读 · 0 评论 -
序列
一、序列1、序列是Python中最基本的一种数据结构,数据结构指计算机中数据存储的方式2、序列的分类(1)可变序列(序列中的元素可以改变)① 通过切片来修改列表# 在给切片进行赋值时,只能使用序列stus [0:2] = ['hd','zpy'] # 使用新的元素替换旧元素stus [0:0] = ['ji'] # 向索引为0的位置插入元素 ②删除元素del stus[2]# 通过切片删除元素del stus [0:2](2)不可变序列(序列中的元素不能改变)原创 2020-07-23 23:02:20 · 384 阅读 · 0 评论 -
小游戏1----唐僧大战白骨精
1、身份选择(1)显示提示信息欢迎光临 xxx 游戏!请选择你的身份:1、xxx2、xxx请选择: x(2)根据用户选择分配身份2、游戏进行(1)显示玩家的基本信息(攻击力、生命值)(2)显示玩家可以进行的操作① 练级:提升玩家的攻击力和生命值② 打BOSS玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行攻击计算BOSS是否被玩家消灭,或者玩家是否被BOSS消灭游戏结束③ 逃跑:退出游戏,显示提示内容,游戏结束!...原创 2020-07-16 20:10:19 · 406 阅读 · 0 评论 -
Python----基础知识7--循环语句
一、循环语句1、while循环(1)语法:while 条件表达式:代码块(2)执行流程:条件表达式恒为true的循环语句,称为死循环,它会一直运行,慎用!(3)循环的三个要件(表达式)–初始化表达式,通过初始化表达式初始化一个变量–条件表达式用来设置循环执行的条件–更新表达式,修改初始化变量的值i=0while i<10 : i+=1 print (i,"hello")else : print ("jisuanji")...原创 2020-07-12 14:17:02 · 131 阅读 · 0 评论 -
Python----基础知识6
一、input()函数1、input()函数的返回值是一个字符串#在与数字进行比较时,要进行类型的强制转换age = input ("请输入你的年龄:")age = int(age)if age >=18 : print ("你已经成年了~~~")2、input()函数也可以用来暂时阻止程序结束3、例题: 输入一个用户名,若用户名是admin,则输出“欢迎管理员光临”,若不是,则不输出。username = input("请输入你的用户名:")if username == "原创 2020-07-09 21:06:05 · 266 阅读 · 0 评论 -
Python----基础知识5
一、算数运算符1、// 整除,指挥保留计算后的整数位,总会返回一个整型。2、** 幂运算,求一个值的几次幂。3、% 取模,求两个数相除的余数。原创 2020-07-07 21:37:17 · 84 阅读 · 1 评论 -
Python----基础知识4
一、标识符1、标识符中可以含有字母、数字、_,但是不能使用数字开头。2、标识符不能是Python中的关键字和保留字,也不建议使用函数名,因为这样会导致函数被覆盖。3、命名规范:在Python中注意遵循两种命名规范:(1)下划线命名法:所有字母小写,单词之间使用_进行分割max_length min_length(2)帕斯卡命名法(大驼峰命名法)首字母大写,每个单词开头字母大写,其余字母小写MaxLength MinLength二、数据类型在Python中数值分成了三种:整数、浮点原创 2020-07-06 21:44:18 · 173 阅读 · 1 评论 -
Python----基础知识3
第二章 Python入门1、计算机语法发展经历了三个阶段:机器语言机器语言通过二进制编码来编写程序,执行效率好,编写起来麻烦汇编语言(符号)使用符号来代替机器码,编写程序时,不需要使用二进制编写完成后,需要将符号转换为机器码,然后再由计算机执行符号转换为机器码的过程称为汇编,将机器码转换为符号的过程称为反汇编汇编语言一般只适用于某些硬件,兼容性比较差高级语言高级语言的语法和现在英语语法类似,并且回和硬件的关系没有那么紧密 基本的高级语言:C、C++、C#、Java、Jav原创 2020-07-05 23:55:55 · 68 阅读 · 0 评论