热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3.2官方文档翻译-标准库概览(二)

7.5字符串模式匹配re模块为高级字符串成处理提供了正则表达式匹配。对于复杂的匹配和处理,正则表达式能够提供简明优化的方法:>>>importre>&

7.5 字符串模式匹配

re模块为高级字符串成处理提供了正则表达式匹配。 对于复杂的匹配和处理,正则表达式能够提供简明优化的方法:

>>> import re

>>> re.findall(r\bf[a-z]*which foot or hand fell fastest)

[footfellfastest]

>>> re.sub(r(\b[a-z]+) \1, r\1cat in the the hat)

cat in the hat

当仅仅需要一些简单的功能时候,优先使用string方法,因为它更容易读取和调试。

>>> tea for too.replace(tootwo)

tea for two

7.6 数学

数学模块为浮点数运算提供了对底层C函数库的访问支持。

>>> import math

>>> math.cos(math.pi / 4)

0.70710678118654757

>>> math.log(1024, 2)

10.0

Random模块为生成随机选择提供了工具。

>>> import random

>>> random.choice([applepearbanana])

apple

>>> random.sample(range(100), 10) # sampling without replacement

[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]

>>> random.random() # random float

0.17970987693706186

>>> random.randrange(6) # random integer chosen from range(6)

4

SciPy project 项目中包含许多数据计算的模块。

10.7 互联网访问 

Python中有许多访问互联网和处理互联网协议的模块。其中最简单的两个就是从链接中获得数据的urllib.request和发送邮件的smtplib.

>>> from urllib.request import urlopen

>>> for line in urlopen(http://tycho.usno.navy.mil/cgi-bin/timer.pl):

... line = line.decode(utf-8) # Decoding the binary data to text.

... if EST’ in line or EDT’ in line: # look for Eastern Time

... print(line)


Nov. 25, 09:43:32 PM EST

>>> import smtplib

>>> server = smtplib.SMTP(localhost)

>>> server.sendmail(soothsayer@example.orgjcaesar@example.org,

... """To: jcaesar@example.org

... From: soothsayer@example.org

...

... Beware the Ides of March.

... """)

>>> server.quit()

(注意第二个例子需要有一个在本地运行的email邮箱服务器)

7.8 时间和日期

Datatime模块提供一些用简单或复杂方式处理时间和日期的类。当处理日期和时间数据时,格式化输出和处理实现的重点就是高校的成员提取。这个模块同样支持时区处理。

>>> # dates are easily constructed and formatted

>>> from datetime import date

>>> now = date.today()

>>> now

datetime.date(2003, 12, 2)

>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")

12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.

>>> # dates support calendar arithmetic

>>> birthday = date(1964, 7, 31)

>>> age = now - birthday

>>> age.days

14368

7.9 数据压缩

Python还支持常用数据的打包和压缩。主要涉及到的模块式zlib,gzip, bz2,zipfile and tarfile. 

>>> import zlib

>>> s = bwitch which has which witches wrist watch

>>> len(s)

41

>>> t = zlib.compress(s)

>>> len(t)

37

>>> zlib.decompress(t)

bwitch which has which witches wrist watch

>>> zlib.crc32(s)

226805979

7.10 性能评测

一些python使用者对于同一问题的不同解决办法的性能很感兴趣。Python提供了一种评测工具就可以马上回答这些问题。

例如, 当封装参数的时候可以用元组封装和拆封特性来代替传统的方法。Timeit模块中可以迅速描述一个性能优势。

>>> from timeit import Timer

>>> Timer(t=a; a=b; b=ta=1; b=2).timeit()

0.57535828626024577

>>> Timer(a,b = b,aa=1; b=2).timeit()

0.54962537085770791

timeit的细粒度相比,profilepstate模块提供了在大代码块中识别时间临界区的工具。

6.11 质量控制

开发高质量的软件的方法之一就是对每个功能写测试用例。在开发过程中频繁地运行这些用例。

Doctest模块提供一个扫描模块和验证嵌套在程序文档字符中的测试。测试编制是简单的把一个典型的调用及它的结果剪切并粘贴到文档字符串里。这通过为用户提供一个实例改善了文档,并且它允许doctext模块确认代码和文档相符。

 

Unittest模块不像doctest模块那么容易使用。但是,它允许一个更加复杂的测试来维护分开文件。

 

7.11 内置电池

Python有“内置电池”的哲学,因为可以很好看到通过更大包扩展更加复杂和健壮的性能。例如:

l Xmlrpc.clientxmlrpc.server模块可以实现远程程序调用。尽管模块有这样的名字,用户无需拥有xml的知识或处理xml. 

l Email包是一个管理邮件消息的库。包含MIME和其他rfc2822-base消息文档。不像真正收发消息的smtplibpoplib模块,email包有完整的工具,来编译和编码复杂的消息结构(包括附件)。或处理互联网编码和消息头协议。

l Xml.domxml.sax包对编译大型数据交互格式提供了非常健全的支持。同样,csv模块支持从一种通用的数据库格式中直接读写。总之,这些模块和包大大简化了python应用程序和其他工具之间的数据交换。

有若干模块可以实现国际化,包括gettextlocalcodecs包。


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
author-avatar
lanshan1126141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有