
python
文章平均质量分 68
potizo
这个作者很懒,什么都没留下…
展开
-
【python】46_python内存管理机制
面试题目: python内存管理机制是什么?1). 由于python中万物皆对象,内存管理机制就是对象的存储问题,Python会分配一块内存空间去存储对象。2) 对于整数和短小的字符等,python会执行缓存机制,即将这些对象进行缓存,不会为相同的对象分配多个内存空间3). 容器对象,如列表、元组、字典等,存储的其他对象,仅仅是其他对象的引用,即地址,并不是这些对象本身1.对象池1.1 小整数池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内原创 2020-07-21 16:06:50 · 319 阅读 · 0 评论 -
【python】45_面向对象进阶
1.元类类也是对象元类是类的类,是类的模板元类的实例为类,正如类的实例为对象。类的本质是对象, 于是可以对类做如下的操作:你可以将它赋值给一个变量你可以拷⻉它你可以为它增加属性你可以将它作为函数参数进行传递1.1 创建类的方式方法一: 通过分支语句动态地创建类(极少用)因为类也是对象,运行时在函数中使用class关键字动态的创建类。当使用class关键字时,Python解释器自动创建这个对象。当然Python提供手动处理的方法。def create_class(name):原创 2020-07-21 01:08:45 · 191 阅读 · 0 评论 -
【python】44_with语句上下文管理器
1. 什么是上下文管理器面试题: with语句操作的对象必须是上下文管理器。那么,到底什么是上下文管理器呢?简单的理解,拥有 __ enter__() 和 __ exit__() 方法的对象就是上下文管理器。__ enter__(self):进入上下文管理器自动调用的方法,在 with 执行之前执行。如果 有 as子句,该方法的返回值被赋值给 as 子句后的变量;该方法可以返回多个值。__ exit__(self, exc_type, exc_value, exc_traceback):退出上下原创 2020-07-20 12:10:10 · 162 阅读 · 0 评论 -
【python】43_用pygame制作乌龟吃鱼游戏
1. pygame的介绍Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。一个游戏循环(也可以称为主循环)就做下面这三件事:处理事件更新游戏状态绘制游戏状态到屏幕上Pygame常用模块:图片素材处理:2. 乌龟吃鱼代码解析游戏规则:1). 假设游戏场景为范围(x,y)为0<=x<=10,0<=y<=102). 游戏生成1只乌龟和10条鱼,它们的移动方向均随机3)原创 2020-07-20 10:56:32 · 1525 阅读 · 1 评论 -
【python】42_面向对象编程中的魔术方法
在Python中,所有用"__"包起来的方法,都称为【魔术方法】(eg: __ len __, __ init __)。1. 特殊属性1.__ name __2.__ module __3. __ class __4.__ bases __5.__ doc __没有定义帮助文档的话,则为None6. __ mro __多继承里可以查看继承的搜索顺序7.__ dict__8.__ dir__ 返回类或者对象的所有成员名称列表。 查看属性dir() 函数就是调用__ di原创 2020-07-20 00:27:52 · 228 阅读 · 0 评论 -
【python】41_面向对象编程的高级特性
1.类属性与实例属性类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本。实例属性不被所有类对象的实例对象所共有,在内存中的副本个数取决于对象个数。下面看这个例子:"""1)类属性不管有多少个对象,都只存储一份。实例属性存储的个数取决于实例的个数"""class Turtle(object): #power是类属性 power = 100 def __init__(self,x,y): #x、y是实例属性 s原创 2020-07-19 19:08:43 · 195 阅读 · 0 评论 -
【python】29_异常处理机制
1.什么是异常error和exception的区别Error(错误)是系统中的错误,程序员是不能改变的和处理的,如系统崩溃,内存空间不足,方法调用栈溢等。遇到这样的错误,建议让程序终止。Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。常见的异常AttributeError 、IOError ...原创 2020-03-22 11:02:27 · 257 阅读 · 0 评论 -
【python】16_小练习_MD5在线加密的应用
1.MD5在线加密解密工具介绍https://www.cmd5.com/, 该网站针对md5、sha1等全球通用公开的加密算法进行反向查询,通过穷举字符组合的方式,创建了明文密文对应查询数据库,创建的记录约90万亿条,占用硬盘超过500TB,查询成功率95%以上,很多复杂密文只有本站才可查询。已稳定运行十余年,国内外享有盛誉。2.MD5简介MD5消息摘要算法(英语:MD5 Message-...原创 2020-02-28 16:23:02 · 577 阅读 · 0 评论 -
【python】15_内置数据结构总结
1.可变与不可变数据结构可变数据类型:可以增删改。可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。不可变数据类型:不可以增删改。p...原创 2020-02-28 15:06:02 · 138 阅读 · 0 评论 -
【python】14_defaultdict
1.defaultdict简介collections.defaultdict类,本身提供了默认值的功能, 默认值可以是整形,列表,集合等.defaultdict 是 dict 的子类。但它与 dict 最大的区别在于,如果程序试图根据不存在的 key 访问 value,会引发KeyError 异常;而 defaultdict 提供default_factory 属性,为不存在的 key 来自动...原创 2020-02-27 22:35:03 · 157 阅读 · 0 评论 -
【python】13_英文词频统计&前 K 个高频元素
作为字典(key-value)的经典应用题目,单词统计几乎出现在每一种语言键值对学习后的必练题目。主要需求:写一个函数wordcount统计一篇文章的每个单词出现的次数(词频统计)。统计完成后,对该统计按单词频次进行排序。from collections import Counter #计数排序text = """ Enterprise architects will appr...原创 2020-02-27 20:39:14 · 702 阅读 · 0 评论 -
【python】11_frozenset
1.frozenset简介frozenset 是 set 的不可变版本,因此 set 集合中所有能改变集合本身的方法(如 add、remove、discard、update 等),frozenset 都不支持;set 集合中不改变集合本身的方法,fronzenset 都支持。set1 = frozenset({1, 2, 3, 4})print(set1, type(set1))进入b...原创 2020-02-25 23:00:19 · 298 阅读 · 0 评论 -
【python】09_项目实例_云主机管理系统+prettytable展示
项目背景:腾讯云服务器 CVM(Cloud Virtual Machine)是腾讯云提供的可扩展的计算服务。使用 CVM 避免了使用传统服务器时需要预估资源用量及前期投入,帮助您在短时间内快速启动任意数量的云服务器并即时部署应用程序。腾讯云 CVM 支持用户自定义一切资源:CPU、内存、硬盘、网络、安全等等,并可以在需求发生变化时轻松地调整它们。需求:****************...原创 2020-02-25 19:57:36 · 259 阅读 · 0 评论 -
【python】08_命名元组
1.命名元组的介绍Tuple还有一个兄弟,叫namedtuple。虽然都是元组,但是功能更为强大。collections.namedtuple(typename, field_names)typename:类名称field_names: 元组中元素的名称在python中,我们如果需要知道现在的时间,有两种方式:调用datetime模块from datetime import d...原创 2020-02-25 17:22:17 · 419 阅读 · 0 评论 -
【python练习】字符串
编写一个检查 Python 有效标识符的小脚本,名字是 idcheck.py。要求:Python 标识符必须以字母或下划线开头1). 只检查长度大于等于 2 的标识符2). 以字母或者下划线开始3). 后面要跟字母,下划线或者或数字拓展String模块string 模块预定义的字符串:string.ascii_letters 、string.ascii_lowercasestr...原创 2020-02-24 14:46:09 · 346 阅读 · 0 评论 -
【python模块】turtle画图模块
1 turtle库Turtle库是Python语言中一个很流行的绘制图像的函数库。1969年诞生Python语言的标准库之一入门级的图形绘制函数库想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。...原创 2020-02-23 15:35:07 · 521 阅读 · 0 评论 -
【python模块】random模块
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。函数函数功能random.random()生成一个0到1的随机浮点数: 0 <= n < 1.0random.uniform(a, b)生成一个指定范围内的随机浮点数:a <= n <=brandom.randint(a, b)生成一个指定...原创 2020-02-23 15:13:26 · 231 阅读 · 0 评论 -
【python】求和函数(递归加三目运算符)
今天被这个简单的代码唬到了。。。代码如下:def sum(items): head, *tail = items return head + sum(tail) if tail else headsum([1,2,3,4,5,6,7,8,9,10])读者可以debug尝试一下...原创 2019-10-15 19:05:03 · 301 阅读 · 0 评论 -
【python】12_内置数据结构——字典
1.字典的定义2.字典的创建intsetlist字典的嵌套工厂函数3.字典的特性4.字典的增加1)增加一个元素a.如果key值存在,则更新对应的value值b.如果key值不存在,则添加对应的key-value值2)添加多个key-value值a.3)setdeafult5.字典的删除1)del2)pop3)popitem4)clear6....原创 2018-11-29 10:50:05 · 343 阅读 · 0 评论 -
【python】22_IO编程之批量修改文件后缀名
【摘要】上篇博文就os模块中关于文件与目录操作的函数都梳理了一遍,本片博文将要实现文件后缀名的批量修改,以此进一步掌握os模块的文件操作。问题描述:在当前目录新建目录img, 里面包含100个文件, 100个文件名各不相同(X4G5.png)2. 将当前img目录所有以.png结尾的后缀名改为.jpg.先分析一下题意,拆解一下步骤。1.文件名的格式有点类似于验证码,因此我们先完成...原创 2019-05-29 22:00:19 · 915 阅读 · 0 评论 -
【python】32_生成器案例之聊天机器人
【摘要】相信读者通过阅读第一篇介绍生成器的博文之后,对生成器的工作机制以及生成器的next、send方法有了大体的了解,这篇博文旨在运用一个非常简单的例子让读者加深对这些知识的理解。注!!!!!本博文只是为了深入了解生成器的工作机制,而非实现智能聊天机器人,这涉及机器学习算法,切勿本末倒置。需求:实现一个可以与用户交互式聊天的简易机器人,例如可以询问机器人姓名、年龄等状况。代码实现:de...原创 2019-06-03 21:13:51 · 496 阅读 · 0 评论 -
【python】33_生成器案例之生产者消费者模型
【摘要】通过前两篇博文的介绍,相信读者一定对生成器有了基本的掌握。在这篇博文中我将介绍生产者消费者模型是什么,并用生成器实现这个模型,相当于补充强化,也算是回顾一下《操作系统》中生产者消费者模型的内容。1. 生产者消费者模型的简介生产者消费者模型当中有两大类重要的角色,一个是生产者(负责造数据的任务),另一个是消费者(接收造出来的数据进行进一步的操作)。1. 为什么要使用生产者消费者模型?...原创 2019-06-03 21:55:36 · 371 阅读 · 0 评论 -
【python】38_高级特性之内置高阶函数
【摘要】函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持。把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。1.map()map() 会根据提供的函数对指定序列做映射。第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。例如:我们要对传入的5个数字进...原创 2019-06-19 22:19:22 · 251 阅读 · 0 评论 -
【python】39_模块与包
1. 模块模块就是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。模块是非常简单的Python文件,单个Python文件就是一个模块,两个文件就是两个模块。模块分为三类:内置模块,python内部提供的功能第三方模块,下载、安装、使用。pip install 模块名称(给哪个python解释器安装模块,就用哪个解释器中的pip)例如:在cmd中,给py...原创 2019-06-20 21:56:23 · 541 阅读 · 0 评论 -
【python】40_面向对象编程三大特性
【摘要】面向对象的三大特性是指:封装、继承和多态。 在学习面向对象编程三大特性之前,先了解一下类和对象。1.类和对象类和对象是面向对象编程技术中的最基本的概念。类(Class) 是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。对象(Object) 是具有类类型的变量。类(Class) 是是创建实例的模板对象(Object) 是一个一个具体的实例类和对...原创 2019-06-21 22:13:34 · 391 阅读 · 0 评论 -
【python】numpy的广播机制
如果两个数组的后缘维度的轴长度相同或其中一方的轴长度为 1,则认为它们是广播兼容的。广播会在缺失维度和轴长度为 1 的维度上进行。后缘维度的轴长度: A.shape[-1] 即矩阵维度元组中的最后一个位置的值。如上,矩阵 A 3,4 后缘维度的轴长度是 4,而矩阵 cal 1,4 的后缘维度也是 4,则他们满足后缘维度轴长度相符,可以进行广播。广播会在轴长度为 1 的维度进行,轴长度为 ...原创 2019-09-23 11:21:42 · 577 阅读 · 0 评论 -
【python】37_高级特性之装饰器
【摘要】上篇博文介绍了闭包,闭包还有一个常用场景就是装饰器。因此,本篇博文将介绍装饰器1.装饰器试想一下,如果我们现在有一份代码,可以给用户提供打游戏、看视频,但是产品经理突然告知我们要对用户进行年龄判断,如果是未成年人,则这两个程序不对用户执行;如果是成年人,则执行相应程序。那么,难道我们要改代码吗?在Python中,针对这一情况,我们可以使用装饰器来予以解决。1.1 装饰器的概念装饰...原创 2019-06-14 21:03:05 · 179 阅读 · 0 评论 -
【python】36_高级特性之迭代器与闭包
【摘要】本博文主要介绍迭代器以及闭包。1.迭代器与可迭代对象1.1 可迭代对象Iterable可以直接作用于for循环的对象称为可迭代对象Iterable一类是集合数据类型,如list, tuple,dict, set,str等;一类是generator,包括生成器和带yield的generator function。在代码中,如何判断是否是可迭代对象?方法一:我们可以通过dir函数...原创 2019-06-06 17:19:01 · 150 阅读 · 0 评论 -
【python】21_IO编程之os模块
【摘要】本博文介绍了Python内置的os模块,旨在掌握如何获取系统信息以及文件目录的操作。1.os模块系统信息获取在linux系统中,如果要操作文件或者目录,我们都是在命令行下面输入操作系统提供的各种命令来完成。而这些操作,在Python程序中一样可以执行。因为操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。1.1 ...原创 2019-05-29 14:16:30 · 247 阅读 · 0 评论 -
【python】17_函数之初步了解
1.函数的理解函数是一种最基本的代码抽象方式,基本上所有的高级语言都支持函数,python也不例外。python不但能非常灵活地定义函数,而且本身内置了很多有用的函数可以直接调用。- 函数的定义python中,定义一个函数需要使用“def”关键字,再依次写出函数名、括号( )、括号中的形式参数和冒号。然后在缩进块中编写函数体,函数的返回值用return语句。格式如下:def 函数名():...原创 2018-12-07 14:17:54 · 866 阅读 · 0 评论 -
【python】31_高级特性之生成器
【摘要】通过列表生成式,可以直接创建一个列表,但是受内存限制,列表容量都是有限的。而且,创建一个包含100万个元素的列表,不仅占用空间很大,如果仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白费了。python中,有一种一边循环一边计算的机制,称为生成器(generator)1.生成器的创建方法一:直接把一个列表生成式的[ ]改成( ),即可创建一个generator想要打印出g...原创 2018-12-07 21:43:09 · 160 阅读 · 0 评论 -
【python】30_高级特性之列表、字典、集合生成式
1.列表生成式(需求1)接收变量k,a,b。之前我们的做法是:列表生成式可以把上边13、14两行语句,用一行代码实现(第18行)(需求2)生成一个列表,列表元素分别为[1* * 1, 2 * * 2, 3 * * 3, 4 * * 4… n * * n]。之前做法:列表生成式做法:通过上边两个例子,我们可以总结出来列表生成式的语法是:[experssion for item i...原创 2018-12-07 20:25:37 · 460 阅读 · 0 评论 -
【python】10_内置数据结构——集合
1.集合的定义如何定义一个空集合?列表去重:2.集合的特性集合支持的特性只有成员操作符(索引 切片 重复 连接均不支持)for循环for + index3.集合的常用方法可变数据类型增加增加多个元素删除删除指定元素并集交集差集对等差分:并集-交集子集超集两个集合不相交...原创 2018-11-29 11:45:16 · 336 阅读 · 0 评论 -
【python】07_内置数据结构——元组
1. 元组的概念2. 元组的创建如果元组类型中包含可变数据类型(比如列表),可以间接修改元组内容元组可以为空元组和列表可以类型转换元组如果只有一个元素,后面一定要加逗号,否则数据类型不确定3. 元组的特性索引切片连接不同的数据类型不可以连接。重复for循环成员操作符4.元组的方法查看元组的索引值查看元素在元组中出现的次数5.元组的应用...原创 2018-11-29 11:19:34 · 174 阅读 · 0 评论 -
【python】06_内置数据结构——列表
摘要:python提供了4个内置数据结构,可以用来保存任何对象集合,它们分别是列表、元组、字典和集合。python有两个有序的集合数据结构,列表是其中之一。1. 列表的概念列表是一个有序的可变对象索引集合,列表中的每个对象从0开始编号。与数组不同的是:1)列表是异构的。可以在一个列表中存放不同类型的对象 ,且不需要预声明所有存储的对象的类型2)列表是动态的。可以根据需要扩展和收缩,使用列...原创 2018-11-28 22:36:16 · 293 阅读 · 0 评论 -
【python】05_字符串
摘要:这篇博文主要阐述有关文本操作的一些问题,例如拆分字符串的开头结尾匹配、去掉两边空格、搜索和替换、分离和拼接等。1. 字符串的定义a、b、c三个变量都分别被用三种方式赋值,但是这三种方式所赋值类型都为str字符串类型。# 字符串常用的转义符号如下:\n:换行\t:一个tab键\":显示出来是"\':显示出来是'例如,要求我们打印 guido’s 和 “hello guido...原创 2018-11-23 13:33:25 · 321 阅读 · 1 评论 -
【python】04_循环语句
1. for循环# for 循环的语法格式:# for 变量 in range(循环次数):# 循环需要执行的代码# else:# 循环结束时需要执行的代码#range()函数:#range(stop): 0~stop-1#range(start,stop):start~stop-1#range(start,stop,step):start~stop-1 step(步长)...原创 2018-11-22 22:06:09 · 354 阅读 · 0 评论 -
【python练习】三大流程控制
1.打印星星1)***************end='' //不换行print() //换行2) * ** *** *********3)***************4)***** **** *** ** *2.打印9*9乘法表左正三角乘法表右正三角乘法表左倒三...原创 2018-11-23 16:22:39 · 305 阅读 · 0 评论 -
【python】03_分支语句
1.判断语句if格式如下:if 要判断的条件: 条件成立的时,要做的事情else: 条件不成立的时候,要做的事情【注】代码的缩进为一个tab键,或者四个空格(tab键和空格不要混用)这里我们在/etc/vimrc中添加set ts=4语句,把tab键设置为4个空格代码中我们用的是python3解释器,input( )接收到的是str类型,因此需要转换成int类型。 if 要判...原创 2018-11-21 21:42:47 · 1759 阅读 · 0 评论 -
【python】02_初识python
1. 第一个python程序python的代码一定要有.py这个扩展名(这是python的一个约定,最好遵循这个约定)其次python2和python3在语法和解释器上略有不同,编写python2/3的代码就一定要用python2/3的解释器去运行,否则容易出现报错。print'hello world' //这是python2.*的语法print('hello world'...原创 2018-11-21 20:39:17 · 477 阅读 · 0 评论