自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Astar路径规划算法复现-python实现

【代码】Astar路径规划算法复现。

2024-06-06 13:58:25 639

原创 Linux常用命令

压缩文件或打包文件常见的扩展名: *.tar.gz, *.tar.bz2;linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。安装系统的时候,没有修改安装语言环境,还是使用的默认英语的语言环境。

2024-05-13 09:28:01 1159

原创 python 新特性

(暗示),帮助开发者写出更加严谨的代码,让调用方减少类型方面的错误,也可以提高代码的可读性和易用性。但是,变量类型注解语法传入的类型表述能力有限,不能说明复杂的类型组成情况,因此引入了。在Python3.10中,针对于字典的三个方法,items,keys,和values都增加了一mapping属性,通过上诉的程序可以发现,方法的语法,类型注释是必填项 (不限制数据类型时, 添加typing.Any为类型注释), 默认值的传递方式和。参数就是要严格的通过参数长度的匹配原则,在以上代码中,列表的长度并不一致。

2024-05-11 09:54:25 1066

原创 Python 正则表达式(二)

search在一个字符串中搜索满足文本模式的字符串。语法格式如下:函数参数与意义相同示例与的区别只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回;而匹配整个字符串,直到找到一个匹配。与的使用对比 选择其一进行匹配搜索一个字符串,要想搜索多个字符串,如搜索aa、bb和cc,最简单的方法是在文本模式字符串中使用择一匹配符号()。择一匹配符号和逻辑或类似,只要满足任何一个,就算匹配成功。如果待匹配的字符串中,某些字符可以有多个选择,就需要使用字符集(),也就是一对中括号括起来的字

2024-05-11 09:17:16 1031

原创 Python 正则表达式(一)

如果要匹配手机号码,按上面的理解需要形如“\d\d\d\d\d\d\d\d\d\d\d”这样的正则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑(是用来进行正则匹配检查的方法,如果字符串开头的0个或多个字符匹配正则表达式模式,则返回相应的match对象。如果字符串不匹配模式,返回。

2024-05-10 16:00:58 782

原创 Python 迭代器

Python的Iterator 对象表示的是一个数据流。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next() 函数实现按需计算下一个数据,所以Iterator 的计算是惰性的,只有在需要返回下一个数据时它才会计算。它是指在运行时可以改变其结构的语言 :例如新的函数、 对象、甚至代码可以被引进,1 迭代是Python最强大的功能之一,是访问集合元素的一种方式。方法返回一个特殊的迭代器对象, 这个迭代器对象实现了。2 迭代器是一个可以记住遍历的位置的对象。

2024-05-10 10:54:52 456

原创 Python 生成器

因此,生成器仅仅保存了一套生成数值的算法,并且没有让这个算法现在就开始执行,而是我什么时候调它,它什么时候开始计算一个新的值,并给你返回。如果列表元素按照某种算法推算出来,那我们就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。3 生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用。关键字返回一个值后,还能从其退出的地方继续运行,因此可以随时间产生一系列的值。返回一个值,并且记住这个返回的位置,下次迭代时,代码从。

2024-05-10 10:32:32 799

原创 Python 装饰器

装饰器函数的执行顺序是分为(被装饰函数)定义阶段和(被装饰函数)执行阶段的,装饰器函数在被装饰函数定义好后立即执行。在函数定义阶段:执行顺序是从最靠近函数的装饰器开始,自内而外的执行在函数执行阶段:执行顺序由外而内,一层层执行。装饰器同样是用于类中的方法,这表示这个方法将会是一个静态方法,意味着该方法可以直接被调用无需实例化,但同样意。),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返。装饰器用于类中的函数,使得我们可以像访问属性一样来获取一个函数的返回值。回值也是一个函数对象。

2024-05-10 10:16:02 416

原创 Python学习第四部分 函数式编程

函数式编程主要学习:高阶函数、闭包closure、匿名函数、偏函数,函数式编程是个很古老的概念,最古老的函数式编程语言Lisp,新出现的函数式编程语言比如Erlang,Scala,clojure等,热门语言Python、java、JavaScript、C++等增加了函数式编程的一些特性。函数式编程在有些时候非常方便。

2024-05-09 17:01:11 849

原创 Python 网络与并发编程(四)

3 协程版本的程序中,3个任务交错执行,但仍然在一个单独的线程控制中。4 单线程内就可以实现并发的效果,最大限度地利用cpu,且可扩展性高,成本低(注:一个CPU支持上万的协程都不是问题。3 协程恢复执行(resume)时,根据之前保存的执行现场恢复到中断前的状态,继续执行,这样就通过协程实现了轻量的由用户态调度的多任务模型。是python3.5之后的协程模块,是python实现并发重要的包,这个包使用事件循环驱动实现并发。1 正常的函数执行时是不会中断的,所以你要写一个能够中断的函数,就需要加。

2024-04-25 09:44:33 815

原创 Python 网络与并发编程(三)

对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。实现进程间通信的方式,就是使用了操作系统给开辟的一个队列空间,各个进程可以把数据放到该队列中,当然也可以从队列中把自己需要的信息取走。拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;Pipe 直译过来的意思是“管”或“管道”,和实际生活中的管(管道)是非常类似的。来自进程1:Hello!

2024-04-23 09:45:05 1214

原创 Python 网络与并发编程(二)

Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制,Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。这个是python的一个开发时候,设计的一个缺陷,所以说python中的线程是“含有水分的线程”。1在读写文件的时候,一般只能只有一个线程在写,而读可以有多个线程同时进行,如果需要限制同时读文件的线程个数,这时候就可以用到信号量了(如果用互斥锁,就是限制同一时刻只能有一个线程读取文件)。

2024-04-20 09:44:40 1338

原创 Python 网络与并发编程(一)

有任务A、B、C,一个CPU去执行他们,有几种方式1、一个cpu按顺序执行ABC,这就是串行(serial)2、当任务数小于cpu核数,多个任务同时一起执行,这就是并行(parallelism)3、切片执行,交替处理ABCABC任务时,就是并发(concurrency)。一般是是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行同步和异步强调的是消息通信机制 (synchronous communication/asynchronous ommunication)

2024-04-19 16:40:37 651

原创 第二部分 Python提高—GUI图形用户界面编程(八)

实战项目 编制简易笔记本。

2024-04-19 08:18:16 437

原创 第二部分 Python提高—GUI图形用户界面编程(七)

菜单组件。

2024-04-19 07:43:05 212

原创 第二部分 Python提高—GUI图形用户界面编程(六)

其他组件学习。

2024-04-18 08:17:29 921

原创 第二部分 Python提高—GUI图形用户界面编程(五)

事件处理。

2024-04-18 07:50:27 637

原创 第二部分 Python提高—GUI图形用户界面编程(四)

grid布局管理器一个GUI 应用程序必然有大量的组件,这些组件如何排布?这时候,就需要使用tkinter提供的布局管理器帮助我们组织、管理在父组件中子组件的布局方式。tkinter 提供了三种管理器:pack、grid、place。

2024-04-17 12:40:08 839

原创 第二部分 Python提高—GUI图形用户界面编程(三)

简单组件学习单选按钮、复选按钮和canvas画布。

2024-04-17 11:22:37 626

原创 第二部分 Python提高—GUI图形用户界面编程(二)

简单组件学习。

2024-04-16 12:38:00 818

原创 第二部分 Python提高—GUI图形用户界面编程(一)

有的组件还能在里面再放置其他组件,我们称为“容器”。布局管理器管理组件的:大小、位置。通过布局管理器可以将容器中的组件实现合理的排布。本节程序也是GUI 应用程序编写的一个主要结构,采用了面向对象的方式,更加合理的组织代码。是由Misc 和Wm 派生出的子类,它代表应用程序的主窗口。意味着,所有GUI 组件同时具备这四个父类的属性和方法。一般作为容器使用,可以放置其他组件,从而实现复杂的布局。框架是一个tkinter 组件,表示一个矩形的区域。表示距屏幕下边的距离。:它是所有组件的根父类。

2024-04-14 17:08:30 992 1

原创 第二部分 Python提高—模块化编程

强大的标准库奠定了python发展的基石,丰富和不断扩展的第三方库是python壮大的保证。我们可以进入PyPI官网(https://pypi.org)可以看到发布的第三方库达到了十多万种,众多的开发者为Python 贡献了自己的力量。常用第三方库大汇总分类库名称说明环境管理P非常简单的交互式 python版本管理工具Pyenv简单的 Python 版本管理工具Vex可以在虚拟环境中执行命令创建独立 Python 环境的工具包管理pipPython 包和依赖关系管理工具。

2024-04-14 10:51:34 1216 1

原创 第二部分 Python提高—文件处理(三)

递归算法遍历文件目录。

2024-04-14 09:48:14 165 1

原创 第二部分 Python提高—文件处理(二)

这时候,就需要“对象的序列化和反序列化”。[‘2021/11/28 5:50’, ‘106.22988’, ‘29.59932’, ‘0’, ‘正北’, ‘0’, ‘点火’, ‘否’, ‘是’][‘2021/11/28 5:50’, ‘106.22988’, ‘29.59932’, ‘0’, ‘正北’, ‘0’, ‘点火’, ‘否’, ‘是’][‘2021/11/28 5:51’, ‘106.22968’, ‘29.59965’, ‘0’, ‘正北’, ‘0’, ‘点火’, ‘否’, ‘是’]

2024-04-12 08:11:28 1070

原创 第二部分 Python提高—文件处理(一)

名称说明io模块文件流的输入和输出操作 input outputos模块基本操作系统功能,包括文件操作glob模块查找符合特定规则的文件路径名fnmatch模块使用模式来匹配文件路径名fileinput模块处理多个输入文件filecmp模块用于文件的比较csv模块用于csv文件处理pickle和cPickle用于序列化和反序列化xml包用于XML数据处理用于处理压缩和解压缩文件(分别对应不同的算法)在操作文本文件时,经常会操作中文,这时候就经常会碰到乱码问题。

2024-04-11 17:02:50 1158 1

原创 第二部分 Python提高(三)

程序开发中,有时候我们也需要自己定义异常类。自定义异常类一般都是运行时异常,通常继承Exception或其子类即可。命名一般以ErrorException为后缀。自定义异常由raise语句主动抛出。示例#测试自定义异常类class AgeError(Exception): #继承Exception,体现父类def __str__(self): #方法重写return str(self.errorInfo)+",年龄错误!应该在1-150之间"

2024-04-11 16:28:28 413 1

原创 第二部分 Python提高(二)

第二部分 Python提高(一)接上文。

2024-04-11 12:44:19 1090 1

原创 第二部分 Python提高(一)

python中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。当发生异常时,解释器会报相关的错误信息,并会在控制台打印出 相关错误信息。1 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给解释器。2 捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常。

2024-04-10 22:03:44 810 4

原创 Python学习(十四)

输出结果张三–李小四张三张三张三。

2024-04-10 12:38:15 151 1

原创 Python学习(十三)

在子类中,如果想要获得父类的方法时,我们可以通过super()来做。super()代表父类的定义,不是父类对象super(子类名称,self).__init__(参数列表)示例class A:print("A的构造方法")super(B,self).__init__() #调用父类的构造方法print("B的构造方法")#A.say(self) 调用父类的say方法super().say() #通过super()调用父类的方法b = B()b.say()输出结果A的构造方法。

2024-04-10 08:28:34 1135 1

原创 Python学习(十二)

(3) 构造方法:传入x,y,width,height。如果(x,y)不传则默认是0,如果width 和height不传,则默认是100.设计一个名为MyRectangle的矩形类来表示矩形。(5) 定义一个getPerimeter(),计算周长的方法。(6) 定义一个draw()方法,使用海龟绘图绘制出这个矩形。(4) 定义一个getArea() 计算面积的方法。(2) 宽度和高度:width、height。(1) 左上角顶点的坐标:x,y。

2024-04-09 21:44:01 116

原创 Python学习(十一)

1 与C和JAVA不同,python中是没有NULL的,取而代之的是None。2None是一个特殊的常量,表示变量没有指向任何对象。3 在Python中,None本身实际上也是对象,有自己的类型NoneType。4 你可以将None赋值给任何变量,但我们不能创建NoneType类型的对象5None不是FalseNone不是0,None不是空字符串。None和任何其他的数据类型比较永远返回False。示例obj = None# none和其他类型比较a = None。

2024-04-09 21:16:45 117

原创 Python学习(九)

Python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点1 通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。2 类内部可以访问私有属性(方法)3 类外部不能直接访问私有属性(方法)4 类外部可以通过访问私有属性(方法)【注】方法本质上也是属性!只不过是可以通过()执行而已。所以,此处讲的私有属性和公有属性,也同时讲解了私有方法和公有方法的用法。

2024-04-09 08:35:14 260

原创 Python学习(八)

建议:不要使用重名的方法!Python中方法。

2024-04-09 08:15:02 384

原创 Python学习(七)

进行搜索,如果闭包作用域也没有找到,Python就会到全局global 命名空间中进行查找,最后会在内建 built-in 命名空间搜索(如果一个名称在所有命名空间中都没有找到,就会产生一个NameError )如果某个name 映射在局部local 命名空间中没有找到,接下来就会在闭包作用域enclosed。指的是嵌套函数(一个函数包裹另一个函数,闭包)用来在内部函数中,声明外层的局部变量。指的是Python为自己保留的特殊名称。指的就是函数或者类的方法内部。指的是模块中的全局变量。

2024-04-03 17:03:37 290

原创 python学习(六)

按位置传递的参数,称为:“位置参数”。表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。arg1 arg2 arg3 为函数的参数。我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”,在带星号的“可变参数”后面增加新的参数,必须在调用的时候“2 **param (两个星号),将多个参数收集到一个“1 *param (一个星号),将多个参数收集到一个“可变参数指的是“可变数量的参数”。

2024-04-03 16:33:07 525 2

原创 Python学习(五)

def 函数名 ([参数列表]) :'''文档字符串'''函数体/若干语句示例'''完成三个数的加法,并返回他们的和'''print("{0}、{1}、{2}三个数的和是:{3}".format(a,b,c,sum))return sumdef add后的圆括号内是形式参数列表,有多个参数则使用逗号隔开定义时的形式参数不需要声明类型,也不需要指定函数返回值类型调用时的实际参数必须与形参列表一一对应我们调用help(函数名)或函数名.__doc__可打印输出函数的文档字符串。

2024-04-03 15:35:34 666 1

原创 Python学习(四)

【代码】Python学习(四)

2024-04-03 11:26:28 166 1

原创 Python学习(三)

一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。通用表达式,与列表推导式类似。应用字典推导式统计字符次数。又如并行迭代器+推导式。

2024-04-03 11:02:28 257 1

原创 Python学习(二)

我们可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

2024-04-03 10:31:36 153 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除