Python入门之内置模块--re模块1、re模块(1)什么是正则?正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过re模块实现。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。元字符匹配内容\w匹配字母(包含中文)或数字或下划线\W匹配非字母(包含中文)或数字或下划线\s匹配任意的空白符\S匹配任意非空白符
系统 2019-09-27 17:52:48 2225
上次完成的url爬取项目并不能满足需求,在此完成了一个更为强大的爬取代码,有需要的可以直接运行,根据自己爬取的网站更改部分正则和形参即可。前排提示:运行需要耐心,因为几千个url爬完的话,还是建议花生瓜子可乐电影准备好。下面是代码,代码有注释,很容易理解。注意:爬虫代码每过一段时间就需要更新,因为爬的东西在变,所以可能过一段时间就要更新爬虫。#-*-coding:utf-8-*-"""CreatedonWedSep2914:01:282018@author
系统 2019-09-27 17:52:48 2225
前言如果大家在网上搜索Python正则表达式,你将会看到大量的垃圾文章会这样写代码:importrepattern=re.compile('正则表达式')text='一段字符串'result=pattern.findall(text)这些文章的作者,可能是被其他语言的坏习惯影响了,也可能是被其他垃圾文章误导了,不假思索拿来就用。在Python里面,真的不需要使用re.compile!为了证明这一点,我们来看Python的源代码。在PyCharm里面输入:i
系统 2019-09-27 17:52:47 2225
getattr`getattr`函数属于内建函数,可以通过函数名称获取复制代码代码如下:value=obj.attributevalue=getattr(obj,"attribute")使用`getattr`来实现工厂模式复制代码代码如下:#一个模块支持html、text、xml等格式的打印,根据传入的formate参数的不同,调用不同的函数实现几种格式的输出importstatsoutdefoutput(data,format="text"):outpu
系统 2019-09-27 17:51:59 2225
while循环Python中while语句的一般形式while判断条件:语句while有限循环n=100sum=0counter=1whilecounter<=n:sum=sum+countercounter+=1print("1到%d之和为:%d"%(n,sum))while无限循环我们可以通过设置条件表达式永远不为false来实现无限循环,实例如下:var=1whilevar==1:#表达式永远为truenum=int(input("输入一个数字:")
系统 2019-09-27 17:49:30 2225
核心代码:#!/usr/bin/envpython#-*-coding:utf-8-*-frombisectimportbisect_LIST1,_LIST2=[],[]_INIT=Falseip2int=lambdaip_str:reduce(lambdaa,b:(a<<8)+b,[int(i)foriinip_str.split('.')])def_init():global_LIST,_INITifnot_INIT:forlinopen('ipdat
系统 2019-09-27 17:48:36 2225
如下所示:#coding:utf-8importosimportpsutilimporttimedefwrite_pid():pid=os.getpid()fp=open("pid.log",'w')fp.write(str(pid))fp.close()defread_pid():ifos.path.exists("pid.log"):fp=open("pid.log",'r')pid=fp.read()fp.close()returnpidelse:r
系统 2019-09-27 17:48:34 2225
序言python的列表对象是这个语言提供的最通用的序列,列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。不像字符串,其大小是可变的,通过对偏移量进行赋值以及其他各种列表的方法进行调用,确实能够修改列表的大小。列表的形式如下>>>A=['apple',1,[1,2,'peach'],2]列表可以包含多种元素,可以进行嵌套,带有多种方法(具体的方法,可以查看相关手册),通过这些方法,列表可以有很多功能,例如可以当做栈,队列(低效,一般不用)等,
系统 2019-09-27 17:47:41 2225
python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。以下说明主要针对python2.7,其他版本可能存在差异。也许直接看定义并不太能明白,下面我们先来看一下什么叫做内部函数:defwai_hanshu(canshu_1):defnei_hanshu(canshu_2):#我在函数内部有定义了一个函数returncanshu_1*canshu_
系统 2019-09-27 17:38:21 2225
1:readline()file=open("sample.txt")while1:line=file.readline()ifnotline:breakpass#dosomethingfile.close()一行一行得从文件读数据,显然比较慢;不过很省内存;测试读10M的sample.txt文件,每秒大约读32000行;2:fileinputimportfileinputforlineinfileinput.input("sample.txt"):pas
系统 2019-09-27 17:38:15 2225
使用pip安装pipinstallvirtualenv因为已经安装过了,所以显示这样在这里我想在这里推荐大家以后再安装类库时可以用豆瓣源来安装,速度很快,因为在国内访问官方pypi源非常慢,pip安装包经常会出错豆瓣源我来演示下django的安装可以看到速度很快好了回到虚拟环境的安装virtualenvscrapytest(环境名)安装好后输入activate.bat进入虚拟环境后输入python查看当前python版本为2.7退出退出虚拟环境:输入dea
系统 2019-09-27 17:37:40 2225
目录常用代码片段及技巧自动选择GPU和CPU切换当前目录临时添加环境目录打印模型参数将tensor的列表转换为tensor内存不够debugtensormemory常用代码片段及技巧自动选择GPU和CPUdevice=torch.device('cuda'iftorch.cuda.is_available()else'cpu')#modelandtensortodevicevgg=models.vgg16().to(device)切换当前目录importo
系统 2019-09-27 17:55:40 2224
一、python常用的函数input函数如x=input(“请输入一个数”)会将用户输入的值强制转换为字符串类型的数据,然后自动赋给xprint函数如print(“123”),结果为123print()函数能打印字符串,元组,列表等,整数,浮点数等type函数type(x)用于判断x的类型id函数id(x)将返回x的地址del命令delx将删除x这个对象eval(x)将字符串x强制转换为数字类型split()拆分字符串。通过指定分隔符对字符串进行切片,并返
系统 2019-09-27 17:54:12 2224
“”"思路:1.a*b=a+a+a+…2.a*b=n个a相加,只需求证b=n即可3.用for循环遍历即可,b就是range的最大次数4.需考虑a,b有五种情况存在,但结果会有三种,正数,0,负数“”"defmultiplication(a,b):ifa>0andb>0:sum=0foriinrange(b):sum+=aprint(sum)elifa<0andb<0:sum=0foriinrange(-b):sum+=asum=-sumprint(sum)
系统 2019-09-27 17:52:27 2224
进程、线程和协程进程的定义:进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。线程的定义:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。进程和线程的关系:一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU.协程的定义:协程通过在线程中实现调度,避免了陷
系统 2019-09-27 17:52:14 2224