Python
都枯槐
这个作者很懒,什么都没留下…
展开
-
python中asyncio模块
3.4版本加入标准库asyncio底层属于selectors实现,看似库,其实是个框架,包含异步IO、事件循环、协程、任务等内容这是一个串行的程序,是一个单线程def a(): for x in range(3): print(x)def b(): for x in "abc": print(x)a()b()多线程版本im...原创 2019-06-20 20:02:36 · 3822 阅读 · 0 评论 -
Python中异常处理
异常Exception错误 Error逻辑错误:算法写错笔误:变量名写错,笔误函数或者类使用错误错误可以避免异常 Exception本意就是意外情况这有个前提,没有出现上面说的错误,也就是说程序写的没有问题,但是在某些情况下,会出现一些意外,导致程序无法正常的执行下去异常无法避免错误和异常:在高级编程语言中,一般都有错误和异常的概念,异常是可以捕获的,并被处理的,但是错误是不...原创 2019-05-26 16:42:38 · 299 阅读 · 0 评论 -
Python中反射
反射运行时,区别于翻译时,指的是程序被加载到内存中执行的时候。反射,reflection,指的是运行时获取类型定义信息。一个对象能够在运行时,像照镜子一样,反射出其类型信息。简单说,在Python中,能够通过一个对象,找出其type、class、attribute或method的能力,称为反射或自省。具有反射能力的函数有type(),isinstance(),callable().dir(...原创 2019-05-25 16:32:51 · 10285 阅读 · 0 评论 -
Python多继承
Python不同版本的类pyhton2.2之前类是没有共同的祖先的,之后,引入object类,它是所有类的共同祖先类objectPython2中为了兼容,分为古典类和新式类Python3中全部都是新式类新式类都是继承自object的,新式类可以使用super多继承OCP原则:多用继承,少修改继承的用途:在子类实现对基类的增强,实现多态多态:在面向对象中,父类、子类通过继承联系在一起...原创 2019-05-21 10:47:19 · 240 阅读 · 0 评论 -
python正则表达式练习题
1、匹配一个0-9之间任意数字import res1="""1\n12\n995\n9999\n102\n02\n003\n4d"""regex=re.compile('(?<![0-9])[0-9]{1,3}(?!\w)')t=regex.findall(s1)print(t)2、匹配合法的ip地址IP地址共有4位,每一位范围都是0-255import res2=""...原创 2019-05-10 16:55:51 · 5250 阅读 · 2 评论 -
python中正则表达式
概述正则表达式,Regular Expression,缩写为regex、regexp、RE等。正则表达式是文本处理极其重要的技术,用它可以对字符串按照某种规则进行检索、替换。正则表达式应用及其广泛,shell中处理文本的命令、各种高级编程语言都支持正则表达式。分类1、BRE:正则表达式,grep、sed、vi等软件支持。vim有扩展2、ERE:扩展正则表达式,egrep(grep-E)...原创 2019-05-07 21:48:05 · 278 阅读 · 0 评论 -
Python树的遍历
二叉树的遍历遍历:迭代所有元素一遍树的遍历:对树中所有元素不重复的访问一遍,也称作扫描。遍历序列:将树中所有元素遍历一遍后,得到的元素的序列,将层次结构转换成了线性结构广度优先遍历层序遍历按照树的层次,从第一层开始,自左向右遍历元素遍历序列ABCDEFGHI深度度优先遍历设树的根结点为D,左子树为L,右子树为R,且要求L一定在R之前,则有下面几种遍历方式前序遍历...原创 2019-05-19 15:15:21 · 846 阅读 · 0 评论 -
python中分发
分发生产者消费者模型一个系统健康的运行,需要监控并处理很多数据,包括日志,对其中已有数据进行采集,分析。被监控对象就是数据的生产者,数据的处理程序就是数据的消费者生产者消费者传统模型生产者和消费者之间总会出现难以匹配的现象,比如说生产者生产能力大于消费者消费能力,或者生产者生产能力低于消费者消费能力等问题队列队列queue能够很好的解决生成和消费的速度不能很好的匹配的问题数据处理...原创 2019-05-14 11:15:00 · 538 阅读 · 0 评论 -
python日志分析
日志分析生产中会出现大量的系统日志、应用程序日志,安全日志等,通过贵日志的分析可以了解服务器的负载,健康状况,可以分析客户的分布情况、客户的行为,甚至基于这些分析可以做出预测。一般采集流程:日志产出->采集(logstash、Flumen、Scribe)->存储->分析->存储(数据库、NoSQL)->可视化开源实时日志分析ELK平台Logstash收集...原创 2019-05-14 09:57:51 · 14889 阅读 · 4 评论 -
python中的re模块
Python的正则表达式python使用re模块提供了正则表达式处理的能力常量常量说明re.M或re.MULTILINE多行模式re.S或re,DOTALL单行模式re.l或re.IGNORECASE忽略大小写re.X或re,VERBOSE忽略表达式中的空白字符使用位或开启多种选项方法编译re.compile(pattern,f...原创 2019-05-08 11:50:33 · 316 阅读 · 0 评论 -
python中高阶函数
一等公民函数在python中是一等公民(First-Class Object)函数既是对象,是可调用对象函数也可以作为普通变量,也可以作为函数的参数、返回值高阶函数高阶函数(High-order Function)数学概念 y=f(g(x))在数学和计算机中,高阶函数应当是至少满足下面一个条件的函数接受一个或多个函数作为参数输出一个函数def counter(ba...原创 2019-04-20 15:38:21 · 232 阅读 · 0 评论 -
Python魔术方法之上下文管理
魔术方法上下文管理文件IO操作可以对文件对象使用上下文管理,使用with……as语法with open('test') as f: pass仿照上例写一个自己的类提示错误上下文管理对象方法意义enter进入与此对象相关的上下文,如果存在该方法,with语法会把该方法的返回值作为绑定到as子句中指定的变量上exit退出与此对象相关的上下文...原创 2019-05-25 19:56:50 · 115 阅读 · 0 评论 -
Python中面向对象——封装的使用
面向对象语言的分类面向机器抽象成机器指令,机器容易理解代表:汇编语言面向过程问题规模小,可以步骤化,按部就班的进行代表:C语言面向对象OOP什么是面向对象呢?一种认识世界、分析世界的方法论,将万事万物抽象为各种对象类(class):类是抽象的概念,是万事万物的抽象。是一类事物的共同特征的集合。对象(instance、object):对象是类的具象,是一个实体。属性:它是对...原创 2019-05-17 00:31:00 · 940 阅读 · 0 评论 -
Git
安装https://git-scm.com/downloads下载对应操作系统的Git客户端版本Linux从RHEL上安装# yum install git -yWindows在官网上下载相应的版本安装概念名称Repository仓库、版本号git初始化后,会在当前目录生成一个.git目录,这就是版本库Workspace工作空间、工作区....原创 2019-06-03 23:07:33 · 1382 阅读 · 0 评论 -
Python中GIT服务器的搭建
GogsGo语言开发的Git服务器https://gogs.io/软件依赖使用CentOS7快捷安装yum库访问阿里镜像站,找到cenos,点击帮助会出现下面的,找到对应版本复制下载。安装文件Git安装#yum install git -yMariaDB安装# yum install mariadb-server# systemctl start mari...原创 2019-06-02 16:16:31 · 405 阅读 · 0 评论 -
Python中模块化
模块化一般来说。编程语言中,库、包、模块是一个概念,是代码组织方式。Python中只有一种模块对象类型,但是为了模块化组织模块便利,提供了包的概念。模块module,指的是Python的源代码文件包package,指的是模块组织在一起的和包名同名的目录及其相关文件。导入语句语句含义import 模块1[,模块2,……]完全导入import……as……模块别...原创 2019-05-29 21:48:40 · 702 阅读 · 0 评论 -
python插件化开发
动态导入运行时,根据用户需求(提供字符串),找到模块的资源动态加载起来。内建函数__import__()__import __(name,globals=None,locals=None,fromlist=(),level=0)name,模块名import语句本质上就是调用这个函数,建议不要使用,建议使用importlib.import_module()sys=__import__...原创 2019-06-01 17:18:29 · 1281 阅读 · 0 评论 -
Python中包管理
Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了但是为了更多项目调用使用,或者共享给别人,就需要打包,或者发布到网络上,以便供人使用,目的也是为了复用。主要工具distutils:官方库distutils,使用安装脚本setup.py来构建、安装包,从1998年就是标准库的一部分,直到2000年停止开发。setuptools:它是替代distutils的增强版工...原创 2019-06-01 16:51:40 · 244 阅读 · 0 评论 -
算法之链表
链表链表属于线性结构,在地址中是散放的,所以不连续。虽然可以使用索引访问,但是只有上一个元素才知道下一个元素的地址,所以不适合查询。链表适合增删。单链表的实现class Node: def __init__(self,item,next=None): self.item=item self.next=next def __repr__(s...原创 2019-05-29 15:24:04 · 117 阅读 · 0 评论 -
python中内存使用
tracemalloc标准库tracemalloc,可以同居内存使用情况import tracemalloc#开始跟踪内存分配tracemalloc.start()d=[dict(zip('xy',(5,6))) for i in range(10000)]d=[tuple(zip('xy',(5,6))) for i in range(10000)]#快照,当前内存分配snaps...原创 2019-05-28 16:22:36 · 412 阅读 · 0 评论 -
python魔术方法
特殊属性属性含义name类、函数、方法等的名字module类定义所在的模块class对象或类所属的类bases类的基类的元组,顺序为它们在基类列表中出现的顺序doc类、函数的文档字符串,如果没有定义则为Nonemro类的mro,class.mro()返回的结果的保存在__mro__中dict类或实例的属性,可写的字典查看...原创 2019-05-24 09:01:07 · 356 阅读 · 0 评论 -
Python面向对象之描述器
描述器Descriptors描述器的表现描述器需要用到三个魔术方法:get(),set(),delete()。方法签名如下:object.get(self,instance,owner)object.set(self,instance,owner)object.delete(self,instance)self指代当前实例,调用者instance是owner的实例owner是属...原创 2019-05-28 14:25:51 · 269 阅读 · 0 评论 -
Python面向对象——类的继承
基本概念面向对象三要素之一,继承Inheritanceclass A: def a(self): print('A')class B: def b(self): print('B')s=A()s.a()t=B()t.b()class Animal: def __init__(self,name): self...原创 2019-05-18 17:51:45 · 358 阅读 · 0 评论 -
python中序列化和反序列化
序列化和反序列化为什么要序列化内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?如果是自己定义的类的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成对应的类的实例?要设计一套协议,按照某种规则,把内存中数据保存到文件中。文件是一个字节序列,所以必须把数据转换成字节序列,输出到文件。这就是序列化。反之,从文件的字节序列恢复到内存并且还是原来的类型,这就...原创 2019-05-05 11:16:58 · 1377 阅读 · 0 评论 -
python文件操作
文件操作CPU由运算器和控制器组成运算器:完成各种算数运算、逻辑运算、数据传输等数据加工处理运算器:控制计算机各部件协调运行存储器:用于记忆程序和数据,例如内存输入设备:将数据或程序输入到计算机中,例如键盘、鼠标输出设备:将数据或程序的处理结果展示给用户,例如显示器、打印机等一般说IO操作,指的是文件IO,如果指的是网络IO,都会直接说网络IO。文件IO常用操作...原创 2019-05-02 15:52:55 · 268 阅读 · 0 评论 -
python中bytes、bytearray
python3中引入两个新类型bytes:不可变字节序列byterarray:字节数组,可变字符串与bytes字符串是字符组成的有序序列,字符可以使用编 码来理解bytes是字节组成的有序的不可变序列bytearray是字节组成的有序的可变的序列编码与解码字符串按照不同的字符集来编码encode返回字节序列encode(encoding=encoding=‘utf8...原创 2019-04-02 20:52:25 · 6179 阅读 · 0 评论 -
python内置数据结构-列表list
列表list一个队列,一个排列整齐的队伍列表的个体被称为元素,由若干元素组成列表元素可以是任意对象(数字、字符串、对象、列表等)列表内元素有顺序、可以使用索引线性的数据结构使用[]表示列表是可变的列表在内存中要求连续,不适合增删,检索元素方便链表数据不一定连续,适合频繁数据增删,寻找数据麻烦队列不允许中间操作,先进先出后进后出,不能在内部进行操作只能栈 后进先出 不允许中间操...原创 2019-03-28 20:30:03 · 281 阅读 · 0 评论 -
python内置数据结构-数据类型分类
数据类型分类数值型:int、float、complex、bool序列对象:字符串 str、列表 list 、tuple键值对:集合set、字典dict数值型:int、float、complex、bool都是classintfloatcomplexboolpython 3中int代表长整型,没有大小限制,受限于内存区域的大小float由整数部分和小数部分组成,是...原创 2019-03-28 10:54:14 · 441 阅读 · 0 评论 -
python中集合set的使用
集set约定set翻译为集合collection翻译为集合类型,是一个大概念set是可变的、无序的、不重复的元素集合 set定义、初始化set()->new empty set objectset(iterable)->new set object set中的元素-set中的元素要求必须可以hashlist、set都不能hash元素不可以使用索引,因为se...原创 2019-04-06 16:02:12 · 645 阅读 · 0 评论 -
python中封装和解构
封装和解构 封装将多个值使用逗号分割,组合在一起本质上返回一个元组,只是省略了小括号 交换上句中,等号右边使用了封装,左边使用了解构 解构把线性结构的元素拆开,并顺序的赋给其他变量左边接纳的变量数要和右边解开的元素个数一致线性结构和非线性结构都能解构解构数需要大于过等于封装数 python 3 中的解构使用*变量名接受,但不能但单独使用被 *变量名,收集...原创 2019-04-06 14:29:13 · 2287 阅读 · 0 评论 -
python中的程序控制
程序控制python中程序控制分为:顺序、分支、循环顺序:程序按照从头到尾依次执行分支:程序执行出现选择循环:某些条件在满足的时候会反复执行直到不符合条件单分支结构:if语言if condition:……condition必须是一个bool类型,这里有一个...原创 2019-03-28 10:11:40 · 351 阅读 · 0 评论 -
python中字典的使用
字典dictkey-value键值对的数据的集合可变的、无序的、key不重复字典dictd=dict()或者d={}dict(**kwargs)使用name=value对初始化一个字典dict(iterable,**kwarg)使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是二元结构dict(mapping,**kwarg)使用一个字典构建另一个字典...原创 2019-04-10 16:34:51 · 541 阅读 · 0 评论 -
python中字符串格式化
字符串格式化字符串的格式化是一种拼接字符串输出样式的手段join拼接只能使用分隔符,且要求被拼接的是可迭代对象且其元素是字符串+拼接字符串还算方便,但是非字符串需要先转换为字符串才能拼接字符串格式化format函数格式字符串语法——python鼓励使用"{} {} ".format(*args,**kwargs) ->strargs是可变位置参数,是一个元组kwar...原创 2019-04-01 10:59:47 · 642 阅读 · 0 评论 -
python中字符串
字符串:一个个字符组成的有序的序列,是字符的集合。使用单引号、双引号、三引号引住的字符序列。字符串是不可变对象,python 3开始字符串是Unicode类型 字符串定义 初始化 字符串元素访问字符串支持使用索引访问不支持一起多个索引有序的字符集合,字符序列可迭代 字符串join连接*“string”.join(iterable)->str...原创 2019-03-31 21:13:22 · 175 阅读 · 0 评论 -
python中切片操作
切片操作:只使用于线性结构,有索引才会有切片,支持切片的线性结构:列表,元组,字符串,bytes,bytearray等线性结构:可迭代for…inlen()可以获取长度通过下标可以访问可以切片切片通过索引区间访问线性结构的一段数据sequence[start:stop]表示返回[start,stop]区间的子序列支持负索引start为0,可以省略sto...原创 2019-04-04 16:26:36 · 2024 阅读 · 0 评论 -
python入门
版本目前python的版本为3.7.3python2和python3区别python 2.Xpython 3.X语句函数化(例打印print(1,2))打印元祖打印函数2个参数round函数返回浮点数x的四舍五入值。i.5的取整变为举例最近的偶数输入raw_inputinput整除/和///–––目前python 2....原创 2019-03-26 17:43:16 · 124 阅读 · 0 评论 -
python内建函数
内建函数 标识 id 哈希 hash() 哈希可以认为是一类特定的函数方法,只有无序的序列才能使用hash 类型 type() 返回对象的类型 类型转换 输入input([prompt])接收用户输入,返回一个字符串 打印print(*objects,sep=’’,end=’\n’,file=sys.stdout,flush=False)打印输出,默认使用空格分割,...原创 2019-04-11 21:43:10 · 208 阅读 · 0 评论 -
python 中递归函数
函数执行流程def foo1(b,b1=3): print("foo1 called",b,b1) def foo2(c): foo3(c) print("foo2 called",c) def foo3(d): print("foo3 called",d) def main(): print("main called") ...原创 2019-04-16 15:59:41 · 241 阅读 · 0 评论 -
python中CSV文件的介绍
CSV文件csv文件简介逗号分隔符Comma-Separated Valuescsv是一个被行分隔符、列分隔符划分成行和列的文本文件CSV不指定字符编码行分隔符为\r\n,最后一行可以没有换行符列分隔符常为逗号或制表符每一行称为一条记录record字段可以使用双引号括起来,也可以不适用,如果字段中出现双引号,逗号,换行符必须用双引号括起来表头可选,和字段列对齐就行了手动生成c...原创 2019-05-05 18:50:44 · 8146 阅读 · 0 评论 -
python中shutil模块
shutil模块文件拷贝:使用打开2个文件对象,源文件读取内容,写入目标文件中完成拷贝过程,但是这样会对视stat数据信息,只是单纯的把内容复制过去。为了解决这个问题python提供了一个方便的库shutil(高级文件操作)copy复制copyfileobj(fsrc,fdst[,length]),文件对象的复制,fsrc和fdst是open打开的文件对象,复制内容,fdst要求可写,le...原创 2019-05-03 17:53:57 · 414 阅读 · 0 评论