自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 线程、协程(下)

随着之前我们学习的多线程和多进程,但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。随着我们对于效率的追求不断提高,基于单线程来实现并发又成为一个新的课题,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发。这样就可以节省创建线进程所消耗的时间。为此我们需要先回顾下并发的本质:切换+保存状态...

2019-04-22 11:54:00 153

转载 线程(上)

进程:在已经了解了操作系统中进程的概念后,我们对进程有了一定的了解:程序是不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,这种执行的程序就称之为进程.程序和进程的区别就在于: 程序是指令的集合, 它是进程运行的静态描述文本; 进程是程序的一次执行活动,属于动态概念. 在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现...

2019-04-22 11:52:00 184

转载 multiprocessor(下)

一、数据共享展望未来,基于消息传递的并发编程是大势所趋即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题,应该尽量避免使用本节所讲的共享数据的方式,以后我们会尝试使用数据库来解决进程之...

2019-04-22 11:51:00 176

转载 multiprocessor(中)

一、进程同步(锁)通过之前的学习,我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制。尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题:进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如何...

2019-04-22 11:49:00 114

转载 multiprocess(上)

仔细说来,multiprocess不是一个模块而是python中一个操作、管理进程的包。 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所有子模块。由于提供的子模块非常多,为了方便大家归类记忆,我将这部分大致分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享。重点强调:进程没有任何共享状态,进程修改的数据,改动仅限于...

2019-04-22 11:45:00 170

转载 进程相关知识

进程:顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。想要了解进程就必须先了解操作系统,老师文章 。PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并...

2019-04-22 11:42:00 125

转载 socketserver模块解析

socketserver模块是基于socket而来的模块,它是在socket的基础上进行了一层封装,并且实现并发等功能。看看具体用法:​ximport socketserver #1、引入模块cl...

2019-04-14 12:39:00 213

转载 粘包

粘包粘包现象:TCP属于长连接,当服务端与一个客户端进行了连接以后,其他客户端需要(排队)等待.若服务端想要连接另一个客户端,必须首先断开与第一个客户端的连接。缓冲区:它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。缓冲区根据其对应的是...

2019-04-12 18:19:00 114

转载 TCP 和 UDP 协议

TCP 和 UDP 协议一、socket层Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。简而言之:...

2019-04-09 21:45:00 108

转载 模块与包

一、模块常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,但其实import加载的模块分为四个通用类别:使用python编写的代码(.py文件)已被编译为共享或DLL的C或C++扩展包好一组模块的包使用C编写并链接到python解释器的内置函数如果你退出Python解释器然后再进入,...

2019-04-05 15:24:00 76

转载 异常处理

一、什么是异常处理程序中的两种异常:1、语法错误: 空格 缩进以及其他语法规则(一般在语法检测的时候就会报错)2、逻辑错误:程序整体能编译,但是在运行时,因具体的逻辑出现问题,例如:input的内容转int3、异常就是程序运行时发生错误的信号,在Python中,错误触发的异常如下:异常发生后后面的代码不执行。在python中...

2019-04-05 15:19:00 112

转载 Python内置方法

一、常用的内置方法1、__new__ 和 __init__: __new__ 构造方法 、__init__初始化函数    1、__new__方法是真正的类构造方法,用于产生实例化对象(空属性)。重写__new__方法可以控制对象的产 生过程。也就是说会通过继承object的new方法返回一个内存空间(self),给后面的init使用。    2、__init...

2019-04-03 09:56:00 146

转载 反射的进阶

一、类的描述符1、property:把装饰的一个方法伪装成一个属性,对属性进行查、改、删#装饰器返回年纪import timeclass Person: def __init__(self,name,birth): self.name = name self.birth = birth @property...

2019-04-01 22:09:00 83

转载 Python多继承的C3算法

C3算法一、知识点补充: 拓扑排序:在图论中,拓扑排序(Topological Sorting) 是一个 有向无环图(DAG,Directed Acyclic Graph) 的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次若存在一条从顶点A到顶点B的路径,那么在序列中顶点A出现在顶点B的前面,如下图:显然它是DA...

2019-03-27 21:02:00 309

转载 栈与队列

一,栈与队列的基础知识  1. 栈(stacks)是一种只能通过访问其一端实现数据储存与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。  2.队列(queue)是一种具有先进先出特征的线性数据结构,元素的增加只能在一端进行,元素的删除只能在另一端进行。能够增加元素的队列一端称为队尾,可以删除元素的队列一端则称为队首    3.队...

2019-03-26 19:39:00 120

转载 Python报错信息收集(1)

UnboundLocalError: local variable 'count' referenced before assignment局部变量错误:赋值之前引用的本地变量'count' ,unbound:未绑定,local:局部ValueError: could not convert string to float: '-1.0((30.0+(-8.0, ...

2019-03-23 18:13:00 296

转载 抽象类,多态与鸭子类型

昨日复习  派生方法和派生属性    super想使用子类的对象调用父类的方法时,才使用super,注意super方法遵循mro,不能光看括号    super在类里:super().方法名(参数) == 指名道姓 :父类名.方法名(self,参数)   多继承 钻石继承    经典类:Python2 不继承object,查找名字遵循深度优先遍历算法    新式...

2018-10-14 18:00:00 294

转载 继承进阶

先讲一个例子:#老师有生日,怎么组合哪?class Birthday: # 生日 def __init__(self,year,month,day): self.year = year self.month = month self.day = day class Teacher: # 老师<b...

2018-10-14 13:40:00 112

转载 对象的组合,初识继承

一、组合  表示的一种什么和什么的关系  先来说一说__init__的作用:class Dog: def __init__(self, name, kind, hp, ad): self.name = name # 对象属性 属性 self.kind = kind self.hp = hp ...

2018-10-12 15:07:00 39

转载 对象之间的交互,类与对象的命名空间以及类的组合

一、对象之间的交互  我们创造一个人狗大战 #现在我们已经有一个人类了,通过给人类一些具体的属性我们就可以拿到一个实实在在的人。 #现在我们要再创建一个狗类,狗就不能打人了,只能咬人,所以我们给狗一个bite方法。有了狗类,我们还要实例化一只实实在在的狗出来。然后人和狗就可以打架了。现在我们就来让他们打一架吧!# 创建一个狗类:class Pers...

2018-10-11 23:59:00 325

转载 常用的内置函数

内置函数流程图:https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac  什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等。截止到python版本3.6.2,现在python一共为我们提供了68个内置函数。它们就是python提供给你直接可以拿来使用的所有函数。以下我...

2018-10-10 11:06:00 630

转载 模块与包以及自定义模块

一、什么是模块?  大家之前在编写ATM作业时,思路是先将程序中都需要有哪些功能定义出来,然后在需要用的地方调用即可。比起之前通篇垒代码的方式,将重复要用的功能定义成函数会让程序更加简洁,这不能不算做是一种进步,但问题是,随着程序功能越来越多,再将所有的代码都放到一起,程序的组织结构仍然会不清晰,不方便管理,以后我们写程序,都是分文件的,如果多个文件中都需要用到同一段功能...

2018-09-14 14:12:00 262

转载 正则表达式

一、re正则模块  正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。生活中处处都是正则: 比如我们描述:4条腿   你可能会想到的是四条...

2018-09-09 15:19:00 542

转载 logging、hashlib、collections模块

一、hashlib模块(加密模块) 1、什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值 2、hash值的特点是: 2.1 验证一致性:只要传入的内容一样,得到的hash值必然一样====...

2018-09-09 14:19:00 116

转载 time、random以及序列化模块

一、 time模块  在Python中,通常有这几种方式来表示时间:时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。格式化的时间字符串(Format String)结构化的时间(struct_time):struct_time元组...

2018-09-07 22:13:00 246

转载 生成器

一 生成器:什么是⽣成器. ⽣成器实质就是迭代器.在python中有三种方式来获取生成器:  1. 通过生成器函数  2. 通过各种推导式来实现生成器  3. 通过数据的转换也可以获取生成器本质:迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现)   特点:惰性运算,开发者自定义首先, 我们先看一个很简单的函数:def fun...

2018-09-05 23:45:00 171

转载 装饰器

装饰器:  装饰器就是闭包函数的一种应用,为什么这么说哪?原因要从其应用说起,当我们要给一个函数添加新的属性和功能,但是又不能修改此函数本身,此时我们就要用到装饰器。装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数。本质上就是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象,它经常用于有切面需求的场...

2018-09-04 23:36:00 93

转载 Python数据结构,计算问题

2018-08-12 《Python 算法》以及《用Python解决数据结构和算法》什么是算法?  在计算机的世界中,算法本质上是我们对某一个问题或则某一类问题的解决方案。也就是说,如果我们想用计算机来解决问题的话,必须将问题的解决思路准确而完整地描述出来,同时计算机 也要能理解这个描述。这就要我们将整个描述转化成一系列清晰的指令,这些指令要能接收满足一定规范的输入,并在有限...

2018-08-12 18:37:00 119

转载 二分法和牛顿迭代法

先说一个面试题:问 1.2 - 0.2 == 1 ?  答案是False! 为什么?其原因在于十进制和二进制的转换上,计算机先要把十进制的数转化为二进制,然后再计算。但是,在转化中,浮点数转化为二进制,就出问题了,例如:十进制的 0.1,转化为二进制是:0.0001100110011001100110011001100110011001100110011…(不能精确)...

2018-08-12 13:22:00 4626

转载 练习题解答(一)

2018-08-1116:12:58一、字符串1、如果判断name变量量对应的值前四位"l"出现⼏次,并输出结果name = "aleX leNb"print(name.count("l", 0, 4)) #count后面的两个参数是判断开始和结束位置的 顾头不顾尾2、从name变量量对应的值中找到"N"对应的索引(如果找不不到则报错),并输出结果...

2018-08-11 17:13:00 262

转载 闭包和迭代器

一、函数名的运用:(函数名其实就是一个变量名)  当def定义后的函数名加上括号就可以调用函数了具体函数名有哪些运用哪?(注意函数的命名规则是和变量名的命名规则一样的)  1、函数名的内存地址:def func(): print("呵呵") print(func) # 结果: <function func at 0x1101e4ea0> ...

2018-08-11 15:48:00 116

转载 函数进阶--动态参数

一、动态参数    当我们有很多参数时,一个一个的去写形参,很感觉很麻烦,哪有什么简便的万能形参吗?答案是有的,那就是我们的动态参数!!!    昨天我们站在形参的角度可以把参数分为:位置参数和默认参数,今天我们将学习第三种:动态参数   1、动态接受位置参数      首先我们回顾一下位置参数,位置参数,按照位置进行传参(一定要注意实参与形参一一对应)      *...

2018-08-10 00:05:00 551

转载 函数基础初识

一,初始函数  1,什么是函数:函数就是 对代码块和功能的封装和定义.(就是对一种功能的封装)  函数的定义, 函数名, 函数体以及函数的调⽤def 函数名(): # 在定义的时需要的参数,类似于占位符 函数体#调用函数名()        # 在调用时需要传入的参数是实参#这里的函数名的命名规则和使⽤和变量量基本一样.⾃⼰己...

2018-08-09 00:01:00 91

转载 文件操作

一、文件操作  使⽤python来读写⽂件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到⽂文 件句句柄. 然后通过⽂文件句句柄就可以进行各种各样的操作了了. 根据打开方式的不同能够执行的操 作也会有相应的差异. 打开文件的⽅方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤用的是r(只读)模式...

2018-08-08 09:28:00 285

转载 数据类型(集合)以及深浅拷贝

内容概要  1、for循环原理  2、set集合  3、深浅拷贝主要内容:  一、for循环原理      先看以下示例:li = [11, 22, 33, 44] for e in li: li.remove(e) print(li) # 结果: [22, 44]    分析...

2018-08-05 14:47:00 129

转载 数据类型(字典)

前面讲了列表的各种操作: 这里我们要讲的是字典,有人说,字典是Python最强大的功能,能包含万物!让我们进入主题吧!1、字典dict  字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的(自Python3.6后,默认是有序的),且key必须是可哈希...

2018-08-02 08:58:00 399

转载 流程控制、数据类型(列表)

1、流程控制 ——if: (可分为 单分支 和 双分支 )1 if 条件: # 单分支2 满足条件后要执行的代码3 4 if 条件: #双分支5 满足条件执行代码6 else:7 if条件不满足就走这段2、缩进...

2018-08-01 22:37:00 130

转载 Python介绍

一、Python的介绍 1、python的身世与应用   python的创始人为吉多.范罗苏姆(Guido van Rossum),大家也常叫他‘龟叔’,为了...

2018-08-01 20:34:00 335

空空如也

空空如也

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

TA关注的人

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