python常用
⑴ python常用的正则表达式处理函数详解
正则表达式是一个特殊的字符序列,用于简洁表达一组字符串特征,检查一个字符串是否与某种模式匹配,使用起来十分方便。
在Python中,我们通过调用re库来使用re模块:
import re
下面介绍Python常用的正则表达式处理函数。
re.match函数
re.match 函数从字符串的起始位置匹配正则表达式,返回match对象,如果不是起始位置匹配成功的话,match()就返回None。
re.match(pattern, string, flags=0)
pattern:匹配的正则表达式。
string:待匹配的字符串。
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。具体参数为:
re.I:忽略大小写。
re.L:表示特殊字符集 w, W, , B, s, S 依赖于当前环境。
re.M:多行模式。
re.S:即 . ,并且包括换行符在内的任意字符(. 不包括换行符)。
re.U:表示特殊字符集 w, W, , B, d, D, s, S 依赖于 Unicode 字符属性数据库。
re.X:为了增加可读性,忽略空格和 # 后面的注释。
import re #从起始位置匹配 r1=re.match('abc','abcdefghi') print(r1) #不从起始位置匹配 r2=re.match('def','abcdefghi') print(r2)运行结果:
其中,span表示匹配成功的整个子串的索引。
使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
group(num):匹配的整个表达式的字符串,group() 可以一次输入多个组号,这时它将返回一个包含那些组所对应值的元组。
groups():返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
import re s='This is a demo' r1=re.match(r'(.*) is (.*)',s) r2=re.match(r'(.*) is (.*?)',s) print(r1.group()) print(r1.group(1)) print(r1.group(2)) print(r1.groups()) print() print(r2.group()) print(r2.group(1)) print(r2.group(2)) print(r2.groups())运行结果:
上述代码中的(.*)和(.*?)表示正则表达式的贪婪匹配与非贪婪匹配。
re.search函数
re.search函数扫描整个字符串并返回第一个成功的匹配,如果匹配成功则返回match对象,否则返回None。
re.search(pattern, string, flags=0)
pattern:匹配的正则表达式。
string:待匹配的字符串。
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
import re #从起始位置匹配 r1=re.search('abc','abcdefghi') print(r1) #不从起始位置匹配 r2=re.search('def','abcdefghi') print(r2)运行结果:
使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
group(num=0):匹配的整个表达式的字符串,group() 可以一次输入多个组号,这时它将返回一个包含那些组所对应值的元组。
groups():返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
import re s='This is a demo' r1=re.search(r'(.*) is (.*)',s) r2=re.search(r'(.*) is (.*?)',s) print(r1.group()) print(r1.group(1)) print(r1.group(2)) print(r1.groups()) print() print(r2.group()) print(r2.group(1)) print(r2.group(2)) print(r2.groups())运行结果:
从上面不难发现re.match与re.search的区别:re.match只匹配字符串的起始位置,只要起始位置不符合正则表达式就匹配失败,而re.search是匹配整个字符串,直到找到一个匹配为止。
re.compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 这两个函数使用。
re.compile(pattern[, flags])
pattern:一个字符串形式的正则表达式。
flags:可选,表示匹配模式,比如忽略大小写,多行模式等。
import re #匹配数字 r=re.compile(r'd+') r1=r.match('This is a demo') r2=r.match('This is 111 and That is 222',0,27) r3=r.match('This is 111 and That is 222',8,27) print(r1) print(r2) print(r3)运行结果:
findall函数
搜索字符串,以列表形式返回正则表达式匹配的所有子串,如果没有找到匹配的,则返回空列表。
需要注意的是,match 和 search 是匹配一次,而findall 匹配所有。
findall(string[, pos[, endpos]])
string:待匹配的字符串。
pos:可选参数,指定字符串的起始位置,默认为0。
endpos:可选参数,指定字符串的结束位置,默认为字符串的长度。
import re #匹配数字 r=re.compile(r'd+') r1=r.findall('This is a demo') r2=r.findall('This is 111 and That is 222',0,11) r3=r.findall('This is 111 and That is 222',0,27) print(r1) print(r2) print(r3)运行结果:
re.finditer函数
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern, string, flags=0)
pattern:匹配的正则表达式。
string:待匹配的字符串。
flags:标志位,用于控制正则表达式的匹配方式,如是否区分大小写,多行匹配等。
import re r=re.finditer(r'd+','This is 111 and That is 222') for i in r: print (i.group())运行结果:
re.split函数
将一个字符串按照正则表达式匹配的子串进行分割后,以列表形式返回。
re.split(pattern, string[, maxsplit=0, flags=0])
pattern:匹配的正则表达式。
string:待匹配的字符串。
maxsplit:分割次数,maxsplit=1分割一次,默认为0,不限次数。
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等。
import re r1=re.split('W+','This is 111 and That is 222') r2=re.split('W+','This is 111 and That is 222',maxsplit=1) r3=re.split('d+','This is 111 and That is 222') r4=re.split('d+','This is 111 and That is 222',maxsplit=1) print(r1) print(r2) print(r3) print(r4)运行结果:
re.sub函数
re.sub函数用于替换字符串中的匹配项。
re.sub(pattern, repl, string, count=0, flags=0)
pattern:正则中的模式字符串。
repl:替换的字符串,也可为一个函数。
string:要被查找替换的原始字符串。
count:模式匹配后替换的最大次数,默认0表示替换所有的匹配。
import re r='This is 111 and That is 222' # 删除字符串中的数字 r1=re.sub(r'd+','',r) print(r1) # 删除非数字的字符串 r2=re.sub(r'D','',r) print(r2)运行结果:
到此这篇关于Python常用的正则表达式处理函数详解的文章就介绍到这了,希望大家以后多多支持!
⑵ Python编程5种常用工具是什么
【导语】Python是一种开源的编程语言,可用于Web编程、数据科学、人工智能以及许多科学应用,学习Python可以让程序员专注于解决问题,而不是语法,由于Python拥有各式各样的工具,因此更具优势,在进行Python编程学习的时候,了解使用工具和编程基础是主要的,那么Python编程5种常用工具是什么?一起来了解一下吧。
1、IDLE
在安装Python时,默认也会安装IDLE。这是最优秀的Python工具之一。它可以降低Python入门的门槛。它的主要功能包括Python
Shell窗口(交互式解释器)、自动补齐、高亮显示语法以及基本的集成调试器。IDLE轻巧易用,方便学习。但是,它不适用于大型项目。许多程序员都将其作为最佳的Python工具。
2、Scikit-learn
Scikit-learn是数据科学最常使用的Python工具之一。这是一款为机器学习和数据科学而设计的Python工具。该工具主要用于处理分类、回归、聚类、模型选择以及预处理等任务。scikit-Learn最出色的功能是在测试数据集上执行基准测试时,表现出的惊人速度。因此,对于程序员和学生来说,Scikit-learn是最优秀的Python工具之一。
3、Theano
Theano是一款数据科学的Python工具,对于程序员和学生而言,这是一款非常可靠的工具。它是深度学习方面最好的Python工具,因此非常适合深度学习。Theano的设计主旨是用户友好、模块化、易于扩展,而且可以与Python配合使用。它能够以最佳方式表达神经网络。Theano可以在TensorFlow和CNTK等流行的神经网络之上运行。
4、Selenium
Selenium是最佳的Python自动化工具之一。它适用于Python测试的自动化,常常用作Web应用程序的自动化框架。我们可以利用Selenium,通过许多编程语言(包括Java、C#、Python、ruby以及其他许多程序员和学生使用的语言)来编写测试脚本。你还可以在Selenium中集成Junit和TestNG等工具,来管理测试用例并生成报告。
5、Test complete
Testcomplete是另一款非常出色的Python自动化工具。支持Web、移动和桌面自动化测试。更高级的应用需要获得商业许可,而且它还可以帮助学生提高学业成绩。Test
complete还可以像机器人框架一样执行关键字驱动的测试。它拥有最出色的录制以及回放功能,非常实用。
关于Python编程常用工具,就给大家介绍到这里了,以上的五种工具希望大家能够好好利用,工具的使用必然能够更好的简化程序编写,所以还是希望大家能够不断进行技能提升,加油!
⑶ python常用函数
1、complex()
返回一个形如a+bj的复数,传入参数分为三种情况:
参数为空时,返回0j;参数为字符串时,将字符串表达式解释为复数形式并返回;参数为两个整数(a,b)时,返回a+bj;参数只有一个整数 a 时,虚部 b 默认为0,函数返回a+0j。
4、enumerate(iterable,start=0)
iterable -- 一个可迭代对象,列表、元组序列等;start -- 计数索引值,默认初始为0‘该函数返回枚举对象是个迭代器,利用 next() 方法依次返回元素值,每个元素以元组形式存在,包含一个计数元素(起始为 start )和 iterable 中对应的元素值。
⑷ Python有哪些常用的数据类型
Numbers(数字型):
即我们常说的1,2,3等等这些数字,Python有两个常见的数据类型转化函数:int和float,一般数据类型可以用来做一些算术功能,如加减乘除乘方等等,还可以用作比较功能,一般返回的是true和false,也就是大于、等于、小于、小于等于诸如此类的有很多,这里就不一一解释了。
String(字符串):
字符串是Python中比较常见的数据类型之一,能够使用str函数将其他类型的数据强制转换为字符串类型,有三种生成方法,即单引号'XXX',双引号"XXX",三引号'''XXX
''',其中三引号一般用于字符串内容较长的时候。
List(列表):
列表可以说是Python中最为活跃的一个数据类型,使用也很频繁,操作也很多,可以通过list函数或方括号[]进行列表的创建。常见函数如求长度,用len,合并多个列表用+,列表元素重复*等等。
Tuple(元组):
元组可以看成是一种不可修改的特殊列表,可以通过小括号()或者tuple函数来创建,即便是只有一个元素,元组中的元素最后也要有逗号。常见操作有求长度len,元组元素重复*,元组拼接+,查看最值max、min等。
Dictionary(字典):字符串、列表、元组都是有序的数据类型,字典是无序的数据类型,主要是用来存放具有一定映射关系的数据。可以通过两种方法创建,1、{}2、dict函数创建。
set(集合):
集合不能有重复元素,可以看作是列表和字典的“杂合体”,可以通过三种方式创建,1、set函数,空集合只能用这种方法;2、{}创建,3、创建冻集合,frozenst。
⑸ 常用的python库有哪些
10个顶级且实用的python库
1、Dash
Dash是比较新的软件包,它是用纯python构建数据可视化app的理想选择,因此特别适合处理数据的任何人。Dash是Flask、Plotly.js和React.js的混合体。
2、Pygame
Pygame是SDL多媒体库的python装饰器,SDL是一个跨平台开发库,旨在提供对以下内容的低级接口:音频、键盘、鼠标、游戏杆、基于OpenGL和Direct3D的图形硬件。
Pygame具有高度的可移植性,几乎可以在所有平台和操作系统上运行。尽管它具有完善的游戏引擎,但您也可以使用此库直接从python脚本播放MP3文件。
3、Pillow
Pillow专门用于处理图像,您可以使用该库创建缩略图,在文件格式之间转换、旋转、应用滤镜、显示图像等等。如果您需要对许多图像执行批量操作,这是理想的选择。
4、Colorama
Colorama允许你在终端使用颜色,非常适合python脚本,文档简短而有趣,可以在Colorama PyPi页面上找到。
5、JmesPath
在python中使用JSON非常容易,因为JSON在python字典上的映射非常好。此外,python带有自己出色的json库,用于解析和创建JSON。对我来说,这是它最好的功能之一,如果我需要使用JSON,可以考虑使用python。
JmesPath使python处理JSON更加容易,它允许您明确地指定如何从JSON文档中提取元素。
6、Requests
Requests建立在世界上下载量最大的python库urllib3上,它令Web请求变得非常简单,功能强大且用途广泛。
Requests可以完成您能想到的所有高级工作,比如:认证,使用cookie,执行POST、PUT、DELETE等,使用自定义证书,使用会话Session、使用代理等。
7、Simplejson
python中的本地json模块有什么问题?没有!实际上,python的json是Simplejson。意思是:python采用了Simplejson的一个版本,并将其合并到每个发行版中,但是使用Simplejson具有一些优点:它适用于更多python版本、它比python随附的版本更新频率更高、它具有用C编写的部分,因此非常快速。
8、Emoji
Emoji库非常意思,但并非每个人都喜欢表情包,分析视角媒体数据时,Emoji包非常有用。
9、Python-dateutil
Python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是:常规的python日期时间功能在哪里结束,而Python-dateutil就出现了。
10、BeautifulSoup
如果您从网站上提取了一些HTML,则需要对其进行解析以获取实际所需的内容。BeautifulSoup是一个python库,用于从HTML和XML文件中提取数据。它提供了导航,搜索和修改解析树的简单方法。它非常强大,即使损坏了,也能够处理各种HTML,这是一个非常强大的功能。
它的一些主要功能:
①BeautifulSoup会自动将传入文档转换为Unicode,将传出文档转换为UTF-8,您无需考虑编码。
②BeautifulSoup位于流行的python解析器的顶部,使您可以尝试不同的解析策略或提高灵活性。
⑹ Python常用的标准库以及第三方库有哪些
Python常用的标准库有http库。第三方库有scrapy,pillow和wxPython.以下有介绍:
Requests.Kenneth Reitz写的最富盛名的http库,每个Python程序员都应该有它。
Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的。用过它之后你就不会再想用别的同类库了。
wxPython.Python的一个GUI(图形用户界面)工具。我主要用它替代tkinter。
Pillow.它是PIL的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。
⑺ python可以用来做什么
1、Web应用开发
服务器端编程,具有丰富的Web开发框架,如Django和TurboGears,快速完成一个网站的开发和Web服务。典型如国内的豆瓣、果壳网等;国外的Google、Dropbox等。
2、系统网络运维
在运维的工作中,有大量重复性工作的地方,并需要做管理系统、监控系统、发布系统等,将工作自动化起来,提高工作效率,这样的场景Python是一门非常合适的语言。
3、科学与简灶数字计算
Python被广泛的运用于科学和数字计算中,例如生物信息学、物理、建筑、地理信息系统、图像可视化分析、生命科学等,常用numpy、SciPy、Biopython、SunPy等。
4、3D游戏开发
Python有很好的3D渲染库和游戏开发框架,有很多使用Python开发的游戏,如迪斯尼卡通城、黑暗之刃。常用PyGame、Pykyra等和一个PyWeek的比赛。
5、图形界面开发
Python可编写桌面图形用户界面,还可以扩展微软的Windows,常用Tk、GTK+、PyQt、win32等。
6、网络编程
除了网络和祥埋互联网的支持,Python还提供了对底层网络的支持,有易于使用的Socket接口和一个异步的网络编程框架TwistedPython。
7、人工智能
Python语言对于人工智能来说是最好的语言。随着人工智能的普及,Python使用也会越来越广拦宴扮泛。想学Python开发,欢迎来中公优就业。