- 博客(48)
- 收藏
- 关注
转载 数据结构与数据类型
如图 3-7 所示,“Hello”中的每个字符占用 1 字节,“算法”中的每个字符占用 2 字节。在庞大的 Unicode 字符集中,常用的字符占用 2 字节,有些生僻的字符占用 3 字节甚至 4 字节。它致力于将全球范围内的字符纳入统一的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码问题。这是因为数组的线性结构可以表示数字的相邻关系和顺序关系,但至于存储的内容是整数 int、小数 float 还是字符 char ,则与“数据结构”无关。
2024-12-01 16:19:13
1100
原创 时间复杂度与空间复杂度
用于衡量算法占用内存空间随着数据量变大时的增长趋势。这个概念与时间复杂度非常类似,只需将“运行时间”替换为“占用内存空间”。算法在运行过程中使用的内存空间主要包括以下几种。输入空间:用于存储算法的输入数据。暂存空间:用于存储算法在运行过程中的变量、对象、函数上下文等数据。输出空间:用于存储算法的输出数据。**一般情况下,空间复杂度的统计范围是“暂存空间”加上“输出空间”。**暂存空间可以进一步划分为三个部分。**暂存数据:**用于保存算法运行过程中的各种常量、变量、对象等。
2024-12-01 15:22:09
295
原创 fask的一个程序
Flask框架的强大与灵活性。Flask作为微框架,简洁且扩展性强,支持网站、APP、微信公众号及小程序开发。其特点包括代码简洁但功能丰富,通过插件扩展功能,提高开发效率。Flask灵活性强,不限制模块、库及数据库选择,用户可根据需求自由配置。Flask本身为内核,扩展功能需第三方插件支持,用户需自行安装所需扩展。
2024-11-11 19:55:52
234
原创 使用Docker制作python项目镜像
链接: https://pan.baidu.com/s/1HvaO2wOIE3pNE0bM7Qm3sA?我这里使用的是 https://6kx4zyno.mirror.aliyuncs.com。来源参考:https://zhuanlan.zhihu.com/p/659528332。在cmd输入docker info。各docker桌面版本集合:如果提示新版本系统不支持,可下载旧版本。在pycharm控制平台拉取所需python版本镜像。–来自百度网盘超级会员v2的分享。构建python镜像。
2024-07-10 09:21:07
632
原创 Linux常用命令
压缩文件或打包文件常见的扩展名: *.tar.gz, *.tar.bz2;linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的,因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法。安装系统的时候,没有修改安装语言环境,还是使用的默认英语的语言环境。
2024-05-13 09:28:01
1228
原创 python 新特性
(暗示),帮助开发者写出更加严谨的代码,让调用方减少类型方面的错误,也可以提高代码的可读性和易用性。但是,变量类型注解语法传入的类型表述能力有限,不能说明复杂的类型组成情况,因此引入了。在Python3.10中,针对于字典的三个方法,items,keys,和values都增加了一mapping属性,通过上诉的程序可以发现,方法的语法,类型注释是必填项 (不限制数据类型时, 添加typing.Any为类型注释), 默认值的传递方式和。参数就是要严格的通过参数长度的匹配原则,在以上代码中,列表的长度并不一致。
2024-05-11 09:54:25
1113
原创 Python 正则表达式(二)
search在一个字符串中搜索满足文本模式的字符串。语法格式如下:函数参数与意义相同示例与的区别只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回;而匹配整个字符串,直到找到一个匹配。与的使用对比 选择其一进行匹配搜索一个字符串,要想搜索多个字符串,如搜索aa、bb和cc,最简单的方法是在文本模式字符串中使用择一匹配符号()。择一匹配符号和逻辑或类似,只要满足任何一个,就算匹配成功。如果待匹配的字符串中,某些字符可以有多个选择,就需要使用字符集(),也就是一对中括号括起来的字
2024-05-11 09:17:16
1218
原创 Python 正则表达式(一)
如果要匹配手机号码,按上面的理解需要形如“\d\d\d\d\d\d\d\d\d\d\d”这样的正则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑(是用来进行正则匹配检查的方法,如果字符串开头的0个或多个字符匹配正则表达式模式,则返回相应的match对象。如果字符串不匹配模式,返回。
2024-05-10 16:00:58
821
原创 Python 迭代器
Python的Iterator 对象表示的是一个数据流。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next() 函数实现按需计算下一个数据,所以Iterator 的计算是惰性的,只有在需要返回下一个数据时它才会计算。它是指在运行时可以改变其结构的语言 :例如新的函数、 对象、甚至代码可以被引进,1 迭代是Python最强大的功能之一,是访问集合元素的一种方式。方法返回一个特殊的迭代器对象, 这个迭代器对象实现了。2 迭代器是一个可以记住遍历的位置的对象。
2024-05-10 10:54:52
493
原创 Python 生成器
因此,生成器仅仅保存了一套生成数值的算法,并且没有让这个算法现在就开始执行,而是我什么时候调它,它什么时候开始计算一个新的值,并给你返回。如果列表元素按照某种算法推算出来,那我们就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。3 生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用。关键字返回一个值后,还能从其退出的地方继续运行,因此可以随时间产生一系列的值。返回一个值,并且记住这个返回的位置,下次迭代时,代码从。
2024-05-10 10:32:32
834
原创 Python 装饰器
装饰器函数的执行顺序是分为(被装饰函数)定义阶段和(被装饰函数)执行阶段的,装饰器函数在被装饰函数定义好后立即执行。在函数定义阶段:执行顺序是从最靠近函数的装饰器开始,自内而外的执行在函数执行阶段:执行顺序由外而内,一层层执行。装饰器同样是用于类中的方法,这表示这个方法将会是一个静态方法,意味着该方法可以直接被调用无需实例化,但同样意。),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返。装饰器用于类中的函数,使得我们可以像访问属性一样来获取一个函数的返回值。回值也是一个函数对象。
2024-05-10 10:16:02
449
原创 Python学习第四部分 函数式编程
函数式编程主要学习:高阶函数、闭包closure、匿名函数、偏函数,函数式编程是个很古老的概念,最古老的函数式编程语言Lisp,新出现的函数式编程语言比如Erlang,Scala,clojure等,热门语言Python、java、JavaScript、C++等增加了函数式编程的一些特性。函数式编程在有些时候非常方便。
2024-05-09 17:01:11
922
原创 Python 网络与并发编程(四)
3 协程版本的程序中,3个任务交错执行,但仍然在一个单独的线程控制中。4 单线程内就可以实现并发的效果,最大限度地利用cpu,且可扩展性高,成本低(注:一个CPU支持上万的协程都不是问题。3 协程恢复执行(resume)时,根据之前保存的执行现场恢复到中断前的状态,继续执行,这样就通过协程实现了轻量的由用户态调度的多任务模型。是python3.5之后的协程模块,是python实现并发重要的包,这个包使用事件循环驱动实现并发。1 正常的函数执行时是不会中断的,所以你要写一个能够中断的函数,就需要加。
2024-04-25 09:44:33
844
原创 Python 网络与并发编程(三)
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。实现进程间通信的方式,就是使用了操作系统给开辟的一个队列空间,各个进程可以把数据放到该队列中,当然也可以从队列中把自己需要的信息取走。拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;Pipe 直译过来的意思是“管”或“管道”,和实际生活中的管(管道)是非常类似的。来自进程1:Hello!
2024-04-23 09:45:05
2111
原创 Python 网络与并发编程(二)
Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制,Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。这个是python的一个开发时候,设计的一个缺陷,所以说python中的线程是“含有水分的线程”。1在读写文件的时候,一般只能只有一个线程在写,而读可以有多个线程同时进行,如果需要限制同时读文件的线程个数,这时候就可以用到信号量了(如果用互斥锁,就是限制同一时刻只能有一个线程读取文件)。
2024-04-20 09:44:40
2151
原创 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
682
原创 第二部分 Python提高—GUI图形用户界面编程(四)
grid布局管理器一个GUI 应用程序必然有大量的组件,这些组件如何排布?这时候,就需要使用tkinter提供的布局管理器帮助我们组织、管理在父组件中子组件的布局方式。tkinter 提供了三种管理器:pack、grid、place。
2024-04-17 12:40:08
889
原创 第二部分 Python提高—GUI图形用户界面编程(一)
有的组件还能在里面再放置其他组件,我们称为“容器”。布局管理器管理组件的:大小、位置。通过布局管理器可以将容器中的组件实现合理的排布。本节程序也是GUI 应用程序编写的一个主要结构,采用了面向对象的方式,更加合理的组织代码。是由Misc 和Wm 派生出的子类,它代表应用程序的主窗口。意味着,所有GUI 组件同时具备这四个父类的属性和方法。一般作为容器使用,可以放置其他组件,从而实现复杂的布局。框架是一个tkinter 组件,表示一个矩形的区域。表示距屏幕下边的距离。:它是所有组件的根父类。
2024-04-14 17:08:30
1106
1
原创 第二部分 Python提高—模块化编程
强大的标准库奠定了python发展的基石,丰富和不断扩展的第三方库是python壮大的保证。我们可以进入PyPI官网(https://pypi.org)可以看到发布的第三方库达到了十多万种,众多的开发者为Python 贡献了自己的力量。常用第三方库大汇总分类库名称说明环境管理P非常简单的交互式 python版本管理工具Pyenv简单的 Python 版本管理工具Vex可以在虚拟环境中执行命令创建独立 Python 环境的工具包管理pipPython 包和依赖关系管理工具。
2024-04-14 10:51:34
2137
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
1136
原创 第二部分 Python提高—文件处理(一)
名称说明io模块文件流的输入和输出操作 input outputos模块基本操作系统功能,包括文件操作glob模块查找符合特定规则的文件路径名fnmatch模块使用模式来匹配文件路径名fileinput模块处理多个输入文件filecmp模块用于文件的比较csv模块用于csv文件处理pickle和cPickle用于序列化和反序列化xml包用于XML数据处理用于处理压缩和解压缩文件(分别对应不同的算法)在操作文本文件时,经常会操作中文,这时候就经常会碰到乱码问题。
2024-04-11 17:02:50
1228
1
原创 第二部分 Python提高(三)
程序开发中,有时候我们也需要自己定义异常类。自定义异常类一般都是运行时异常,通常继承Exception或其子类即可。命名一般以ErrorException为后缀。自定义异常由raise语句主动抛出。示例#测试自定义异常类class AgeError(Exception): #继承Exception,体现父类def __str__(self): #方法重写return str(self.errorInfo)+",年龄错误!应该在1-150之间"
2024-04-11 16:28:28
440
1
原创 第二部分 Python提高(一)
python中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。当发生异常时,解释器会报相关的错误信息,并会在控制台打印出 相关错误信息。1 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给解释器。2 捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常。
2024-04-10 22:03:44
832
4
原创 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
1194
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
145
原创 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
148
原创 Python学习(九)
Python对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点1 通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。2 类内部可以访问私有属性(方法)3 类外部不能直接访问私有属性(方法)4 类外部可以通过访问私有属性(方法)【注】方法本质上也是属性!只不过是可以通过()执行而已。所以,此处讲的私有属性和公有属性,也同时讲解了私有方法和公有方法的用法。
2024-04-09 08:35:14
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人