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模块中的函数时,必须使用:模块...
ymnets ymnets·2020-03-25

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...
ymnets ymnets·2020-03-25

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...
ymnets ymnets·2020-03-25

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...
ymnets ymnets·2020-03-25

python3之File文件方法

1、读写文件open()将会返回一个file对象,基本语法:open(filename,mode)filename:是一个包含了访问的文件名称的路径字符串mode:决定了打开文件的模式:只读,写入,追加等,默认文件访问模式为只读(r)不同模式打开文件的列表:r:以只读的方式打开文件,文件的指针将会放在文件的开头,为默认模式rb:以二进制格式打开一个文件用于只读,文件指针会在文件的开头r+:打开一个文件用于读写,文件指针将会在文件的开头rb+:以二进制格式打开一个文件用于读写,文件指针会放在文件的开头w:打开一个文件用于写入,如果该文件已存在则将会覆盖文件,如果不存在则创建新文件wb:以二进制打开一个文件用于写入w+:打开一个文件用于读写wb+:以二进制格式打开一个文件用于读写,如果文件存在则覆盖,如果不存在则创建新文件a:打开一个文件用于追加内容,如果文件已存在,文件指针会放在文件的结尾,如果不存在则创建新文件进行写入ab:以二进制格式打开一个文件用于追加写入a+:打开一个文件用于读写,如果该文件已存在,文件指针会放在结尾,文件打开时会是追加模式,该文件不存在则创建新文件ab+:以二进...

python3之模块collections

1.计数器(counter)counter是对字典的方法,用来追踪值的出现次数;具备字典的所有功能和自己的功能。>>>fromcollectionsimportCounter>>>d2=Count>>>d2=Counter('abbcccddd')#对值计数>>>print(d2)Counter({'d':3,'c':3,'b':2,'a':1})>>>print(type(d2))<class'collections.Counter'>>>>d2=Counter('abbcccddd')>>>foriind2.elements():#计数元素迭代器...print(i)...bbadddccc>>>d2.clear()#清空元素>>>print(d2)Counter()>>>d3=d2.copy()#拷贝>>>d3Counter({'d':3,'c':3,'b':2,'a':1...

python3解析库BeautifulSoup4

BeautifulSoup是python的一个HTML或XML的解析库,我们可以用它来方便的从网页中提取数据,它拥有强大的API和多样的解析方式。BeautifulSoup的三个特点:BeautifulSoup提供一些简单的方法和python式函数,用于浏览,搜索和修改解析树,它是一个工具箱,通过解析文档为用户提供需要抓取的数据BeautifulSoup自动将转入稳定转换为Unicode编码,输出文档转换为UTF-8编码,不需要考虑编码,除非文档没有指定编码方式,这时只需要指定原始编码即可BeautifulSoup位于流行的Python解析器(如lxml和html5lib)之上,允许您尝试不同的解析策略或交易速度以获得灵活性。1、BeautifulSoup4的安装配置BeautifulSoup4通过PyPi发布,所以可以通过系统管理包工具安装,包名字为beautifulsoup4$easy_installbeautifulsoup4或者$pipinstallbeautifulsoup4也可用通过下载源码包来安装:#wgethttps://www.crummy.com/software/...

python3解析库lxml

 lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高XPath,全称XMLPathLanguage,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索XPath的选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择XPath于1999年11月16日成为W3C标准,它被设计为供XSLT、XPointer以及其他XML解析软件使用,更多的文档可以访问其官方网站:https://www.w3.org/TR/xpath/1、python库lxml的安装windows系统下的安装:#pip安装pip3installlxml#wheel安装#下载对应系统版本的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxmlpip3installlxml-4.2.1-cp36-cp...
ymnets ymnets·2020-03-25

python3之requests

1、requests简介requests是通过urllib3实现自动发送HTTP/1.1请求,它能轻松的实现cookies,登陆验证,代理设置等操作。Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。更好的方案是使用requests。它是一个Python第三方库,处理URL资源特别方便requests实现内容:保持活力和连接池支持国际域名和网址会话与Cookie持久性浏览器式SSL验证自动内容解码基本/摘要式身份验证自动解压缩Unicode响应bodyHTTP(s)代理支持多部分文件上传流媒体下载连接超时分块的请求.netrc支持2、requests的安装(1)源码安装:gitclonegit://github.com/requests/requests.git#克隆公共存储库或者下载tarballcurl-OLhttps://github.com/requests/requests/tarball/mastercdrequests/requestspipinstall.(2)pip安装pipinstallrequests(3)...
ymnets ymnets·2020-03-25

python版本管理工具pyenv和包管理工具pipenv

一、pyenv版本管理工具pyenv是一个python版本管理工具,可以实现轻松切换多个python版本它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理virtualenv虚拟环境,可以自己创建virtualenv或者通过pyenv-virtualenv来自动化创建虚拟环境pyenv通过PATH环境变量来匹配切换python或者pip的工作目录,pyenv通过读取工作环境来指定使用哪个python版本,如在当前会话中查找PYENV_VERSION环境变量,可以通过pyenvshell来设置shell会话变量,在当前目录中的特定应用程序文件.python-version,可以使用pyenvlocal来设置.python-version,它会搜索每个父目录直到根目录;全局$(pyenvroot)/version文件可以通过pyenvglobal命令修改,通过读取这些环境变量或文件来指定运行的python版本,也可以多个版本并行,更多详细内容请去github上pyenv项目1、linux下安装pyenv(centOS)安装前需检查是否有以下安装依赖包...

python3之模块urllib

urllib是python内置的HTTP请求库,无需安装即可使用,它包含了4个模块:request:它是最基本的http请求模块,用来模拟发送请求error:异常处理模块,如果出现错误可以捕获这些异常parse:一个工具模块,提供了许多URL处理方法,如:拆分、解析、合并等robotparser:主要用来识别网站的robots.txt文件,然后判断哪些网站可以爬1、urllib.request.urlopen()urllib.request.urlopen(url,data=None,[timeout,],cafile=None,capath=None,cadefault=False,context=None)请求对象,返回一个HTTPResponse类型的对象,包含的方法和属性:方法:read()、readinto()、getheader(name)、getheaders()、fileno()属性:msg、version、status、reason、bebuglevel、closedimporturllib.requestresponse=urllib.request.urlopen...
ymnets ymnets·2020-03-25

python3之模板pycurl探测web服务质量

1、pycurl简介pycURL是libcurl多协议文件传输库的python接口,与urllib模块类似,PycURL可用于从python程序中获取由URL标识的对象,功能很强大,libcurl速度非常快pycurl作为libcurl之上的薄包装,速度也非常快;支持多种协议SSL,身份验证和代理选项;用于网络操作的套接字允许将pycurl集成到应用程序的I/O循环中。libcurl是一个免费且易于使用的客户端URL传输库,支持DICT,FILE,FTP,FTPS,Gopher,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMTP,SMTPS,Telnet和TFTP。libcurl支持SSL证书,HTTPPOST,HTTPPUT,FTP上传,基于HTTP表单的上传,代理,cookies,用户名密码认证(Basic,Digest,NTLM,Negotiate,Kerberos4),文件传输恢复,http代理隧道等等。libcurl具有很高的可移植性,它可以在多种平台上构建和运行,包括Solaris,NetB...

python3之模块io使用流的核心工具

1、io概叙io模块提供了python用于处理各种类型I/O的主要工具,主要有三种类型的I/O:文本I/O,二进制I/O和原始I/O;这些都是通用类型,各种后备存储可使用其中的每一种类型,所以这些类型的具体对象称为文件对象。他通常的术语叫流和文件对象。每个具体流对象都具有各种功能:可以是只读,只写或读写。它可以允许任意的随机访问;向前或向后寻找任何位置或者只允许顺序访问如套接字或管道的情况下。所有的流都会检测提供给它的数据类型,如给二进制流str字符类型的write()的写方法将会引发一个TypeError异常。2、io类层次结构I/O流的实现被组织为类的层次结构,第一个抽象基类为ABCs,用于指定不同类别的流,然后提供标准流实现的具体类。I/O层次结构的顶部是抽象基类IOBase,它定义了流的基本接口,但读取和写入流之间没有分离。RawIOBase它是IOBase延伸的类,用来处理字节读取和写入流,RawIOBase的子类为机器文件系统中的文件提供接口。BufferedIOBase类继承RawIOBase类,它的子类:BufferedWriter,BufferedReader,Buf...

python3模块SMTP协议客户端与email邮件MIME对象

 1、smtplib模块的常用类与方法smtplib模块实现邮件的发送功能,模拟一个stmp客户端,通过与smtp服务器交互来实现邮件发送的功能,可以理解成Foxmail的发邮件功能,在使用之前我们需要准备smtp服务器主机地址、邮箱账号以及密码信息。在python2.3以后python自带smtplib模块,无需额外安装。classsmtplib.SMTP(host="",port=0,local_hostname=None,[timeout,]source_address=None):SMTP类定义作为SMTP的构造函数,定义了一个SMTP客户端会话对象,功能是与smtp服务器建立链接,在链接成功后,就可以向服务器发送相关请求,比如登陆、校验、发送、退出等。host:参数为远程smtp主机地址;如:smtp.163.comport:为链接端口默认为25local_hostname:是将本地主机的FQDN(完整域名)发送HELO/EHLO(标识用户身份)的指令timeout:为链接或尝试链接多少秒后超时source_address:绑定到具有多个网络接口的计算机中的某个特定...
首页上一页...382383384385386...下一页尾页