自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 IO多路复用

阅读目录一 IO模型介绍二阻塞IO(blocking IO)三非阻塞IO(non-blocking IO)四 多路复用IO(IO multiplexing)五 异步IO(Asynchronous I/O)六 IO模型比较分析七 selectors模块IO模型介绍  为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 ...

2019-09-30 12:22:00 153

转载 协程:gevent

阅读目录一 引子二 协程介绍三 Greenlet模块四 Gevent模块引子  之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 ...

2019-09-28 15:51:00 159

转载 线程:threading

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

2019-09-25 20:23:00 214

转载 进程:multiprocessing

multiprocessing:multiprocessing模块允许程序员在给定机器上充分利用多个处理器。它可以在Unix和Windows上运行。在中multiprocessing,通过创建Process对象然后调用其start()方法来生成进程。Process遵循的APIthreading.Thread。多进程程序的一个简单示例:class Proces...

2019-09-21 20:20:00 436

转载 利用socket与ssl模块读取网页内容

例如:新浪网站的IP地址可以用域名www.sina.com.cn自动转换到IP地址,但是怎么知道新浪服务器的端口号呢?答案是作为服务器,提供什么样的服务,端口号就必须固定下来。由于我们想要访问网页,那就要考虑网页是http还是https服务:端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口端口:443服务:Http...

2019-09-16 21:50:00 275

转载 socket中的listen与accept

listen:  建立监听,能否建立需要accept函数去进行检查def listen(self, backlog: int) #backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。注意:backlog应该理解为阻塞队列的长度,总共与服务器连接的客户端一共有 backlog + 1 个。阻塞队列F...

2019-09-14 16:13:00 1049

转载 网络基础:socket模块

socket:  套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。基于TCP协议的socket:tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端socket参数详解:sock...

2019-09-13 20:37:00 208

转载 模块:logging

日志:用来记录用户行为 或者 代码的执行过程用途:“一键”控制,排错,记录错误,记录用户行为五个等级:默认只打印info以上的错误信息  debug:排错信息  info:正常信息  warning:警告信息  error:错误信息  critical:严重的错误信息两种方式:  basicConfig:    信息不支持中文,只支持写在文件,能够...

2019-09-12 23:13:00 115

转载 模块:摘要算法,hashlib

算法介绍:Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。摘要算法之所以能指出数据...

2019-09-12 17:00:00 105

转载 面向对象:类的内置方法

__str__和__repr__:实例化一个对象,该对象的返回值是一个指向这个类的内存地址class A: passa = A()print(a)#打印:<__main__.A object at 0x000001FA526DA108>自定义__str__和__repr__方法:class Func: pass...

2019-09-07 21:50:00 211

转载 python:反射

python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)四种形式:getattr setattr delattr hasattrgetattr(obj,name)例:反射类# 反射对象的属性# 反射对象的方法# 反射类的属性# 反射类的方法:classmethod staticmethodclass Pe...

2019-09-07 18:08:00 83

转载 面向对象:calssmethod、staticmethod、isinstance、issubclass

classmethod:类方法,把一个方法变成一个类中的方法,这个方法就直接可以被类调用,不需要依托任何对象什么时候用:当这个方法的操作只涉及静态属性的时候,就应该使用classmethod来装饰这个方法class Fruit_store: __discount = 0.5 def __init__(self,name,price): sel...

2019-09-06 16:44:00 109

转载 面向对象:property、setter、deleter

property:是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值    一个静态属性property本质就是实现了get,set,delete三种方法例:在不改变对象调用属性名的方式(obj.name)下,实现了被封装属性在类外部的查看、修改、删除class Person: def __init__(self,name,money): ...

2019-09-06 15:18:00 116

转载 面向对象:多态和封装、property

多态指的是一类事物有多种形态:python天生支持多态例如:class Wechat: def pay(self,money): print('支付%s钱'%money)class Alipay: def pay(self,money): print('支付%s钱'%money)class Applepay:...

2019-09-05 19:29:00 95

转载 面向对象:抽象类和接口类

Python角度:只有抽象类,没有接口类,实现接口类需要借助模块使用:abc模块中的abstractmethod和ABCMeta,声明元类metaclass = ABCMeta,且加上装饰器@abstructmethod本质作用:代码规范,希望在子类中实现和父类方法名字完全一样的方法Java角度:本来就支持单继承,所以就有了抽象类;没有多继承,所以为了接口隔离原则,所以创建了接口...

2019-09-05 18:40:00 123

转载 初识面向对象:类

定义一个类: class 类名(大写开头) 静态变量 函数 : 方法 #动态属性 # 类中可以定义方法,方法都有一个必须传的参数self 变量 : 类属性 #静态属性 # 类中可以定义静态属性 例:class Tst: nationality = '中国' ...

2019-08-31 20:10:00 82

转载 当函数返回值为可变数据类型(字典)时,可在返回之前添加一个键值对,赋值可以是当前作用域函数的内存地址,这样就能以字典获取vaule的形式调用到内部函数(赋值的内存地址指向的函数)...

#人狗大战,定义了两个函数,一个person,一个dog,函数体内定义的是属性,内部函数定义为‘攻击’,创建对象后调用此函数可以进行改变血量,即受到攻击。def person(name,hp,ack,sex): person = { '名字':name, '血量':hp, '攻击力':ack, '性别'...

2019-08-31 17:33:00 370

转载 异常处理

python中的错误:  语法错误  逻辑错误什么是异常:  两种错误引发程序发出的信号,在pycharm中就是控制台异常的分类:  在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误AttributeError 试图访问一个对象没有的树形,比如foo...

2019-08-30 21:55:00 63

转载 模块和包调用方法、执行顺序

执行顺序:先从sys.modules里查看是否已经被导入如果没有被导入,就依据sys.path路径取寻找模块然后才导入创建这个模块的命名空间执行文件,把文件中的名字都放到命名空间里注意:所有的模块导入都应该尽量往上写:  内置模块-->扩展模块-->自定义模块因为先有sys.moudles的判断,模块不会重复被导入从哪儿导入模块 : sys.pa...

2019-08-29 18:03:00 685

转载 模块:序列化

序列化: 数据类型转换成一个字符串数据类型反序列化: 字符串数据类型转换为数据类型三个模块可以实现:json pickle shelvejson是所有语言通用的,但仅能转换列表、字典、数字、字符串和元祖:dumps:数据类型转换成字符串数据类型loads:字符串数据类型转换成数据类型import jsonlis = ['aike','d...

2019-08-29 17:28:00 154

转载 模块:random

随机小数:print(random.random()) #大于0小于1的小数print(random.uniform(0,100))#可以设置范围,大于0小于100的小数随机整数:print(random.randint(1,100))#大于1小于等于100的整数print(random.randrange(1,100,2))#大于1小于20之间的奇...

2019-08-28 18:42:00 82

转载 模块:time

常用方法:time.time():获取当前时间戳time.sleep():推迟线程指定的运行时间。单位为秒。print(time.time())#当前时间的时间戳print(time.strftime('%Y-%m-%d %H:%M:%S'))#格式化当前时间print(time.localtime())#结构化时间python中时间日期...

2019-08-28 18:02:00 64

转载 模块:collections,Python中的扩展数据类型

namedtuple:生成一个可以使用名字来访问的tuplefrom collections import namedtuplepoint = namedtuple('point',['x','y','z','r'])p = point(1,2,3,4)print(p.z)print(p.x)print(p.y)print(p.r)print(p)...

2019-08-28 16:02:00 86

转载 re模块的基本用法

findall:返回每一个匹配的标的,放在一个列表里ret = re.findall('i','aike listen to me')print(ret)#打印:['i', 'i']search:返回第一个匹配到的匹配信息,需要调用group方法才能将标的打印,若没有匹配到,返回Noneret = re.search('i','aike li...

2019-08-27 20:27:00 185

转载 初识正则表达式

初识:正则表达式不是Python当中内置的语法和规则,它是一门独立的语言。正则表达式只和字符串相关,在Python中使用正则表达式需要调用re模块;知识点:  字符组:[字符组]在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字、字母、标点等等。假如要求一个位置"只能出现一个数字",那么这个位置上的字...

2019-08-27 17:57:00 62

转载 用递归实现二分查找

有一个列表l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88],用二分查找法实现查找版本一:能够实现查找,但由于切片会开辟新的内存存放列表新的列表,所以不能返回元素在原列表的下标l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55...

2019-08-26 21:44:00 275

转载 递归函数

定义:在函数内部调用自身def func(): pass func()#内部调用自身 passfunc()递归最大深度:1000附近如果无限循环,每一次调用都会在主函数的全局名称空间当中创建一个局部名称空间,无限层叠。若一直调用下去,就会造成名称空间占用太多内存的问题,于是python为了杜绝此类现象,强制的将递归层数控制在...

2019-08-26 19:02:00 100

转载 内置函数:reversed、slice

列表中的reversed起到反转列表的作用,替换原有的列表l = [1,2,3,4,5]l.reverse()print(l)#[5, 4, 3, 2, 1]reversed则是不替换原有序列,返回一个迭代器,更节省内存l1 = [11,22,33,44,55]l2 = reversed(l1)print(l1)#[11, 22, 33, 44, ...

2019-08-25 13:40:00 200

转载 内置函数:repr

将变量原封不动的打印出来,字符串类型打印出来带引号print('1')#1print(1)#1print(repr('1'))#'1'print(repr(1))#1格式化输出%ri = 'aike'print('我是%s'%i)#我是aikeprint('我是%r'%i)#我是'aike'转载于:https://www.cn...

2019-08-25 12:20:00 63

转载 内置函数:ord,chr,ascii

print(ord('a'))#字符按照unicode转换成数字,只接受单个字符print(chr(97))#数字按照unicode转换成字母print(ascii('艾克')) #只要是ascii码中的内容就打印出来,如果不是则以\u的形式返回转载于:https://www.cnblogs.com/aizhinong/p/11407446.html...

2019-08-25 12:03:00 152

转载 内置函数:bytes、bytearray、memoryview

bytes:字节组成的有序不可变序列bytearray:在phthon3当中新增的bytearray为字节组成的可变序列,修改字节不会生成新的序列字符串以字符为单位,转换成bytes类型以字节为单位,两者并无区别,本质都是编译成计算机可以读懂的01010101字节码两者参数一样:如果 source 为整数,则返回一个长度为 source 的初始化数组;如果 source 为字...

2019-08-25 11:09:00 434

转载 内置函数:format

格式化输出:#按默认位置传入s = 'name = {},age = {},hight = {},form = {}'.format('aike','18','183','江西吉安')print(s)#format的表现形式为元组,可以以索引进行传参name = input('请输入你的姓名:').strip()age = input('请输入你...

2019-08-24 22:25:00 124

转载 内置函数:数学计算,abs,divmod,round,pow,sum,min,max

ads:计算绝对值l = [-1,5,-6,11,6,-19]print(sorted(l,key=abs))#按绝对值排序for i in l: print(abs(i))#逐个打印绝对值divmod:除几余几print(divmod(10,3))#返回一个元组round:小数精确,精确到小数点后几位,可以精确到小数点前几位...

2019-08-24 18:28:00 809

转载 内置函数:进制转换,bin,oct,hex

bin:将整型转换成二进制,以0b显示oct:将整型转换成八进制,以0c显示hex:将整型转换成十六进制,以0x显示print(bin(15155))print(oct(15155))print(hex(15155))#打印:0b111011001100110o354630x3b33转载于:https://www.cnblogs.com...

2019-08-24 17:16:00 168

转载 内置函数:help,callable,dir

help:查看模块、类型、对象、方法、属性的详细信息help(dir)dic:查看一个类或者对象的所有属性,返回一个列表print(dir(list),type(dir(list)))callable:接收一个参数,判断这个参数是不是可以调用,如果是函数名,返回Turedef inner(): passprint(callable(i...

2019-08-24 17:03:00 163

转载 内置函数:内存相关id,hash

id:查看变量的内存地址a = {}print(id(a))hash:可变数据类型不可哈希,不可变数量类型可哈希 可哈希数据类型调用hash函数返回一个哈希值,不可哈希调用hash函数会报错i = [0,1,2]l = (0,1,2)k = l# print(hash(i))#报错print(hash(l))#返回一个哈希值print...

2019-08-24 14:56:00 95

转载 内置函数:输入输出,input、print以及\r的作用

input:name1 = input('请输入姓名:')#输入的字符串传给name1print(name1)#打印输入的字符串print:def print(self, *args, sep=' ', end='\n', file=None): # known special case of print """ print(value, ...

2019-08-24 14:42:00 397

转载 内置函数:exec、eval、compile

eval:将字符串内的代码执行,有返回值,用于简单的计算exec:将字符串内的代码执行,没有返回值,用于简单的逻辑判断   均可以读取文件进行执行info_str = '1+2+3'couunt = eval(info_str)couunt1 = exec(info_str)print(couunt)#返回6print(couunt1)#无返回值jud =...

2019-08-24 11:51:00 90

转载 内置函数:zip、filter、map、stored

zip:多个可迭代对象,从开始,一对一返回一个元组a = ('a','b','c ','c')b = ('a','b','c','c')ret = zip(a,b)for i in ret: print(i)print(list(zip(a,b)))#打印('a', 'a')('b', 'b')('c ', 'c')('c', '...

2019-08-23 21:29:00 133

转载 匿名函数

正常函数:#比较大小def func(x,y): return x if x>y else yprint(func(1,2)) #2匿名函数:func = lambda x,y:x if x>y else yprint(func(1,2))#2关键字:lambde格式:只能一条语句结束      lambde 形参...

2019-08-23 20:22:00 117

空空如也

空空如也

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

TA关注的人

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