为您找到搜索结果:5207个
python3之redis
1、redis简介redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。1.使用Redis有哪些好处?(1)速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2)支持丰富数据类型,支持string,list,set,sortedset,hash(3)支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4)丰富的特性:可用于缓存,消息,按key设置过期时间,过期后...
python3之pymysql模块
1、python3MySQL数据库链接模块PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb。PyMySQL遵循Python数据库APIv2.0规范,并包含了pure-PythonMySQL客户端库。PyMySQL模块下载地址:https://github.com/PyMySQL/PyMySQL安装PyMySQL模块的方法:#(1)pip方式安装$pipinstallPyMySQL#(2)克隆安装$gitclonehttps://github.com/PyMySQL/PyMySQL $cdPyMySQL $python3setup.pyinstall#(3)源码安装$curl-Lhttps://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X|tarxz $cdPyMySQL* $python3setup.pyinstall2、PyMySQL的API参考(1)链接对象API:classpymysql.connections.Connection(host=None,&nbs...
python3之线程与进程
我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来:控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)和操作控制器OC(OperationController)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。运算单元:是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单...
python3之异常处理,断言和反射
1、异常基础python在运行过程中,程序解释机制会测试代码,如检测不通过则会抛出异常。try:aa=10bb='10'cc=aa+bbexceptExceptionase:print('error:',e)#output输出异常,数字不能与字符向加error:unsupportedoperandtype(s)for+:'int'and'str'try:aa=10bb='10'cc=aa+bbexceptTypeErrorase:print('错误信息;',e)2、异常种类python中的异常种类非常多,每个异常专门处理某个项的异常!AttributeError试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError输入/输出异常;基本上是无法打开文件ImportError无法引入模块或包;基本上是路径问题或名称错误IndentationError语法错误(的子类);代码没有正确对齐IndexError下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]KeyError试图访问字典里不存在的键KeyboardInterruptCtrl+C被按下NameE...
python3之socket&socketserver网络编程
套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。套接字为BSDUNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。许多非BSDUNIX系统(如ms-dos,windows,os/2,macos及大部分主机环境)都以库形式提供对套接字的支持。三种最流行的套接字类型是:stream,datagram和raw。stream和datagram套接字可以直接与TCP协议进行接口,而raw套接字则接口到IP协议。但套接字并不限于TCP/IP。套接字模块是一个非常简单的基于对象的接口,它提供对低层BSD套接字样式网络的访问。使用该模块可以实现客户机和服务器套接字。要在python中建立具有TCP和流套接字的简单服务器,需要使用socket模块。利用该模块包含的函数和类定义,可生成通过网络通信的程序。python提供了两个级别访问的网络服务:低级的网络服务支持基本的socket...
python3之面向对象
1、面向对象术语类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类属性(类变量):类属性在整个实例化的对象中是公用的。类属性定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。实例变量:定义在方法中的变量,只作用于当前实例的类。继承:即一个派生类(derivedclass)继承基类(baseclass)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系。实例化:创建一个类的实例,类的具体对象。方法:类中定义的函数。对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。2、类定义Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的...
python3之xml&ConfigParser&hashlib&Subprocess&logging模块
1、xml模块XML指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。XML被设计用来传输和存储数据。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。python对XML的解析:常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同。python有三种方法解析XML,SAX,DOM,以及ElementTree:使用xml.etree.ElementTree模块来解析XML文件,ElementTree模块中提供了两个类用来完成这个目的:ElementTree表示整个XML文件(一个树形结构)Element表示树种的一个元素(结点)示例xml文件:<collectionshelf="NewArrivals"><movietitle="EnemyBehind"><type>War,T...
python3之shutil高级文件操作
1、shutil高级文件操作模块shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。2、shutil模块的拷贝方法>>>importshutil>>>shutil.chown('test.txt',user='mysql',group='mysql')#改变文件的属主和属组>>>shutil.copy('test.txt','test_copy.txt')#拷贝文件>>>shutil.copy2('test.txt','test_copy2.txt')#拷贝文件并复制所有统计信息,如修改时间等。>>>shutil.copyfile('test_ln.txt','test_copyfile.txt')#如果是链接文件,将复制新文件,不复制链接>>>dstf=open('test_copyfileobj.txt','r+')>>>srcf=open('test.txt','r')...
python3之序列化(pickle&json&shelve)
1、pickle模块python持久化的存储数据:python程序运行中得到了一些字符串,列表,字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据。python模块大全中pickle模块就排上用场了,他可以将对象转换为一种可以传输或存储的格式。pickle模块将任意一个python对象转换成一系统字节的这个操作过程叫做串行化对象。python的pickle模块实现了python的所有数据序列和反序列化。基本上功能使用和JSON模块没有太大区别,方法也同样是dumps/dump和loads/load。cPickle是pickle模块的C语言编译版本相对速度更快。与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。importpickledata2=[1,2,3,4]det_str=pickle.dumps(data2)print(det_str)#output:输出为二进制格式b'x80x03]qx00(Kx01Kx02Kx03...
python3之模块
1、python3模块模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法。模块让你能够有逻辑地组织你的python代码段;把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。#新建模块文件modle_1.py,内容如下:defp_func(arg):print('hello',arg)return#新建主模块文件main.py,内容如下:frommodle_1importp_func#导入模块modle_1中的p_func函数if__name__=="__main__":#判断是否为主程序执行口p_func('python')#output:hellopython2、模块的引入模块定义好后,可以使用import语句来引入模块,语法如下:importmodule1,[module2[,.........moduleN]]比如要引用模块math,就可以在文件最开始用importmath来引入,在调用math模块中的函数时,必须使用:模块...
python3之正则表达式
1、正则表达式基础正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不然str自带方法,但功能十分强大。正则表达式的大致匹配流程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。python支持的正则表达式元字符和语法:模式描述^匹配字符串的开头$匹配字符串的末尾。.匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。[...]用来表示一组字符,单独列出:[amk]匹配'a','m'或'k'[^...]不在[]中的字符:[^abc]匹配除了a,b,c之外的字符。re*匹配0个或多个的表达式。re+匹配1个或多个的表达式。re?匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式re{n} re{n,}精确匹配n个前面表达式。re{n,m}匹配n到m次由前面的正则表达式定义的片段,贪婪方式a|b匹配a或b(re)G匹配括号内的表达式,也表示一个组(?imx)正则表达式包含三种可选标志:i,m,或x。只影响括号中的区域。(?-imx)正则表达式...
python3之递归
1、递归的特点递归算法是一种直接或间接调用自身算法的过程,在计算机编程中,递归算法对解决一大类问题是十分,它往往使算法的描述简洁而且易于理解。递归算法解决问题的特点:(1)递归就是在过程或函数里调用自身(2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。(3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低,所以一般不提倡用递归算法设计程序。(4)在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储,递归次数过多容易造成栈溢出等。2、递归的要求递归算法所体现的“重复”一般有三个要求:(1)每次调用在规模上都有所缩小(通常是减半)(2)是相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出作为后一次的输入)(3)在问题的规模极小时必须用直接给出解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模位达到直接解答的大小为条件)无条件递归调用将会成为死循环而不能正常结束。简单的递归函数实例:defrecursion(i):#定义函数print(i)ifi/2>1:#判断递归条件,退出re=recursio...
python3之装饰器
1、装饰器装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限验证等场景,装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。装饰器的实现原理:#无参数装饰器原理:deflogin(funct):print('passeduserveriftcation...')returnfunct#函数返回形参的值或内存地址deftv():print('welcomtoTVpage')tvv=login(tv)#执行login函数,参数tv返回tv函数的内存地址tvv()#执行生成器函数将执行tv函数传参数装饰器原理:#实例:实现程序执行前的验证deflogin(funct):#验证函数definner(arg):#嵌套函数是为了不让验证函数不执行print('passeduserveriftcation...')funct(arg)retu...
python3之迭代器&生成器
1、迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 生成迭代器和 next()遍历迭代器元素。>>>dil=iter(range(10))#使用iter方法创建一个迭代器>>>print(type(dil))#类型为迭代器<class'range_iterator'>>>>print(dil)<range_iteratorobjectat0x7fb9bf466ed0>>>>l1=[1,2,3,4,5]>>>it=iter(l1)#将列表转换为迭代器>>>print(type(it))<class'list_iterator'>>>>print(it)<list_iteratorobjectat0x7fb9bf42e9...
python3之File文件方法
1、读写文件open()将会返回一个file对象,基本语法:open(filename,mode)filename:是一个包含了访问的文件名称的路径字符串mode:决定了打开文件的模式:只读,写入,追加等,默认文件访问模式为只读(r)不同模式打开文件的列表:r:以只读的方式打开文件,文件的指针将会放在文件的开头,为默认模式rb:以二进制格式打开一个文件用于只读,文件指针会在文件的开头r+:打开一个文件用于读写,文件指针将会在文件的开头rb+:以二进制格式打开一个文件用于读写,文件指针会放在文件的开头w:打开一个文件用于写入,如果该文件已存在则将会覆盖文件,如果不存在则创建新文件wb:以二进制打开一个文件用于写入w+:打开一个文件用于读写wb+:以二进制格式打开一个文件用于读写,如果文件存在则覆盖,如果不存在则创建新文件a:打开一个文件用于追加内容,如果文件已存在,文件指针会放在文件的结尾,如果不存在则创建新文件进行写入ab:以二进制格式打开一个文件用于追加写入a+:打开一个文件用于读写,如果该文件已存在,文件指针会放在结尾,文件打开时会是追加模式,该文件不存在则创建新文件ab+:以二进...