
编程
文章平均质量分 86
菜鸟进阶站
要对技术有一定的执着力。
展开
-
【20天快速掌握Python】day20-手动搭建HTTP服务器
除了使用浏览器给服务器发送请求以外,我们还可以使用第三方模块requests用代码来给服务器发送器请求,并获取结果。# 方法二: 只能用于get请求# 2.获取请求结果# 2)响应体(数据)# a.获取二进制对应的原数据(数据本身是图片、压缩文件、视频等文件数据)# b.获取字符类型的数据# c.获取json数据(json转换成python对应的数据)原创 2023-01-01 13:48:23 · 1004 阅读 · 1 评论 -
【20天快速掌握Python】day19-HTTP协议
当我们编写一个页面时,我们只需要在HTTP请求中把HTML发送出去,不需要考虑如何附带图片、视频等,浏览器如果需要请求图片和视频,它会发送另一个HTTP请求,因此,一个HTTP请求只处理一个资源(此时就可以理解为TCP协议中的短连接,每个链接只获取一个资源,如需要多个就需要建立多个链接)当存在Content-Encoding时,Body数据是被压缩的,最常见的压缩方式是gzip,所以,看到Content-Encoding: gzip时,需要将Body数据先解压缩,才能得到真正的数据。原创 2022-12-31 11:15:00 · 513 阅读 · 0 评论 -
【20天快速掌握Python】day18-进程
1)如果block使用默认值,且没有设置timeout(单位秒),消息列队如果为空,此时程序将被阻塞(停在读取状态),直到从消息列队读到消息为止,如果设置了timeout,则会等待timeout秒,若还没读取到任何消息,则抛出"Queue.Empty"异常;开启过多的进程并不能提高你的效率,反而会降低你的效率,假设有500个任务,同时开启500个进程,这500个进程除了不能一起执行之外(cpu没有那么多核),操作系统调度这500个进程,让他们平均在4个或8个cpu上执行,这会占用很大的空间。原创 2022-12-30 11:15:00 · 913 阅读 · 0 评论 -
【20天快速掌握Python】day17-线程
Queue是一个先进先出(First In First Out)的队列,主进程中创建一个Queue对象,并作为参数传入子进程,两者之间通过put( )放入数据,通过get( )取出数据,执行了get( )函数之后队列中的数据会被同时删除,可以使用multiprocessing模块的Queue实现多进程之间的数据传递。如果此时另一个线程试图获得这个锁,该线程就会变为“blocked”状态,称为“阻塞”,直到拥有锁的线程调用锁的release()方法释放锁之后,锁进入“unlocked”状态。原创 2022-12-29 11:15:00 · 318 阅读 · 0 评论 -
【20天快速掌握Python】day16-多任务
在现实生活中,有很多的场景中的事情是同时进行的,比如跳舞和唱歌是同时进行的。在程序中,可以使用代码来模拟唱歌和跳舞的功能:print("正在唱歌...%d"%i)print("正在跳舞...%d"%i)sing() #唱歌dance() #跳舞很显然刚刚的程序并没有完成唱歌和跳舞同时进行的要求多任务。原创 2022-12-28 11:15:00 · 243 阅读 · 0 评论 -
【20天快速掌握Python】day15-网络编程
一个udp网络程序,可以不绑定,此时操作系统会随机进行分配一个端口,如果重新运行此程序端口可能会发生变化一个udp网络程序,也可以绑定信息(ip地址,端口号),如果绑定成功,那么操作系统用这个端口号来进行区别收到的网络数据是否是此进程的。原创 2022-12-27 11:15:00 · 654 阅读 · 0 评论 -
【20天快速掌握Python】day14-正则表达式
正则表达式是一个特殊的字符序列,计算机科学的一个概念。通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用re模块。re 模块使 Python 语言拥有全部的正则表达式功能。1.1 特点:灵活性、逻辑性和功能性非常强;可以迅速地用极简单的方式达到字符串的复杂控制。对于刚接触的人来说,比较晦涩难懂。1.2 Python中的正则表达式与大多数编程语言相同,正则表达式里也使用\原创 2022-12-26 11:15:00 · 830 阅读 · 0 评论 -
【20天快速掌握Python】day13-序列化反序列化和异常处理
如果每次返回的数据值不是在一个已有的数据集合中读取的,而是通过程序按照一定的规律计算生成的,那么也就意味着可以不用再依赖一个已有的数据集合,也就是说不用再将所有要迭代的数据都一次性缓存下来供后续依次读取,这样可以节省大量的存储(内存)空间。通过上面的分析,我们已经知道,迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使用next()函数的时候,迭代器会向我们返回它所记录位置的下一个位置的数据。实际上,在使用next()函数的时候,调用的就是迭代器对象的。迭代器是一个可以记住遍历的位置的对象。原创 2022-12-25 11:15:00 · 244 阅读 · 0 评论 -
【20天快速掌握Python】day12-文件操作
改良版本的程序是对可能发生异常的代码处进行 try 捕获,使用 try/finally 语句,该语句表示如果在 try 代码块中程序出现了异常,后续代码就不再执行,而直接跳转到 except 代码块。程序在运行过程中,由于我们的编码不规范,或者其他原因一些客观原因,导致我们的程序无法继续运行,此时,程序就会出现异常。比如文件关闭,释放锁,把数据库连接返还给连接池等。设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件,这就是序列化,反之,从文件的字节序列恢复到内存中,就是反序列化。原创 2022-12-24 11:15:00 · 1041 阅读 · 0 评论 -
【20天快速掌握Python】day11-面向对象进阶
举个常见的单例模式例子,我们日常使用的电脑上都有一个回收站,在整个操作系统中,回收站只能有一个实例,整个系统都使用这个唯一的实例,而且回收站自行提供自己的实例。最好是提供一个父类 Dog,具备 work 的功能,其他小狗继承它,这样只要是小狗类,则行为被统一起来了,我们人类完全可以保证,只要是小狗的子类,找它干活肯定不会有问题。定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。父类与子类,主要体现在代码的重用,不需要大量的编写重复代码。原创 2022-12-23 11:15:00 · 287 阅读 · 0 评论 -
【20天快速掌握Python】day10-面向对象基础
这个模板只规定了飞机的某些特征(例如大小,颜色,型号等等)和行为(例如起飞,降落,飞行等等),它并不是一个具体的飞机,而是对飞机的一个抽象概念。Python 的类里提供的,两个下划线开始,两个下划线结束的方法,就是魔法方法,魔法方法在恰当的时候就会被激活,自动执行。在实际开发中,对象的某些属性或者方法可能只希望在对象的内部别使用,而不希望在外部被访问到,这时就可以定义私有属性和私有方法。,对象属性又称为实例属性,记录对象各自的数据,不同对象的同名实例属性,记录的数据各自独立,互不干扰。原创 2022-12-22 11:15:00 · 354 阅读 · 0 评论 -
【20天快速掌握Python】day09-模块和包
通过这种方式引入的时候,调用函数时只能给出函数名,不能给出模块名,但是当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。也就是说假如模块A中有函数function( ),在模块B中也有函数function( ),如果引入A中的function在先、B中的function在后,那么当调用function函数的时候,是去执行模块B中的function函数。但是,需要注意的是,如果一个py文件要作为一个模块被别的代码使用,这个py文件的名字一定要遵守标识符的命名规则。原创 2022-12-21 11:15:00 · 734 阅读 · 0 评论 -
【20天快速掌握Python】day08-高阶函数
如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。原创 2022-12-20 11:15:00 · 252 阅读 · 0 评论 -
【20天快速掌握Python】day07-函数
因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量(打个比方,把你、我是当做成函数,把局部变量理解为每个人手里的手机,你可有个iPhone8,我当然也可以有个iPhone8了, 互不相关)在本小节刚开始的时候,说过的“买冰淇淋”的例子中,最后儿子给你冰淇淋时,你一定是从儿子手中接过来 对么,程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存。定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它调用函数很简单的,通过。原创 2022-12-19 11:15:00 · 307 阅读 · 0 评论 -
【20天快速掌握Python】day06-元组、字典、集合
字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国上海'}info = {'name':'配的龙','high':'183cm','weigh':'65kg'}字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值。添加之后的字典为:{'name': '班长', 'id': 100}原创 2022-12-18 11:15:00 · 499 阅读 · 0 评论 -
【20天快速掌握Python】day05-列表
它们的使用和字符串里的使用效果一致。sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。while 循环是一种基本的遍历列表数据的方式,但是最常用也是最简单的方式是使用 for 循环。in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在。我们是通过指定下标来访问列表元素,因此修改元素的时候,为指定的列表下标赋值即可。一个列表中的元素又是一个列表,那么这就是列表的嵌套。类似while循环的嵌套,列表也是支持嵌套的。原创 2022-12-17 12:35:18 · 632 阅读 · 0 评论 -
【20天快速掌握Python】day04-字符串
字符串可以理解为一段普通的文本内容,在python里,使用引号来表示一个字符串,不同的引号表示的效果会有区别。原创 2022-12-15 10:46:50 · 606 阅读 · 0 评论 -
【20天快速掌握Python】day03-流程控制语句
while语句,会先执行一次判断条件,如果条件成立,会执行一次代码块,代码块执行完成以后,会再次判断条件语句,如果还成立,将会再执行代码语句... 直到最后条件不成立。除了while循环以外,for可以完成循环的功能。在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。elif必须和if一起使用,否则出错 else 一般用在最后,即所有条件都不满足时使用。break和continue都用在循环语句里,用来控制循环。1.3 if...elif...else语句的使用。原创 2022-12-14 22:04:40 · 359 阅读 · 0 评论 -
【20天快速掌握Python】day02-数据类型转换及运算符
并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。,数字0,空字典{},空列表[],空元组(),和空数据None会被转换成为False,其他的都会被转换成为True。当多种运算符做混合运算时,就会涉及到先运算哪个,后运算哪个问题。如果是两个字符串进行比较,会将每个字符串的首字符都转换成对应的编码,然后逐一进行对比。注意:赋值运算符是从右往左运算,将等号右边的值赋值给等号左边,所以,如果是两个字符串做加法运算,会直接把这两个字符串拼接成一个字符串。如果是数字和字符串做加法运算,会直接报错。原创 2022-12-13 10:30:33 · 344 阅读 · 0 评论 -
【20天快速掌握Python】day01-Python入门
当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!原创 2022-12-12 18:00:51 · 640 阅读 · 0 评论