SYS


  sys这个模块让你能够访问与Python解释器联系紧密的变量和函数,下面是一些sys模块中重要的函数和变量:

函数和变量 描述
argv   命令行参数,包括脚本和名称
exit([arg])                退出当前的程序,可选参数为给定的返回值或者错误信息
modules 映射模块名字到载入模块的字典
path 查找模块所在目录的目录名列表
platform 平台标识符
stdin 标准输入流-- 一个类文件对象
stdout 标准输出流-- 一个类文件对象
stderr   标准错误流-- 一个类文件对象

OS


  OS模块为你提供了访问多个操作系统服务的功能。

OS模块中一些重要函数和变量
函数和变量 描述
environ             对环境变量进行映射
system(command) 在子shell中执行操作系统命令
sep   路径中的分隔符
pathsep 分割路径的分隔符
linesep 行分隔符(\n、\r、\r\n)
urandom(n) 返回n字节的加密强随机数据

fileinput


  fileinput模块让你能够轻松地遍历文件的所有行。

fileinput模块中重要的函数
函数   描述
input([files[,inplace[,backup]]]) 便于遍历多个输入流中的行
filename() 返回当前文件的名称
lineno() 返回当前(累计)的行数
filelineno() 返回当前文件的行数
isfirstline() 检查当前行是否是文件的第一行
isstdin() 检查最后一行是否来自sys.stdin
nextfile() 关闭当前文件,移动到下一个文件
close() 关闭序列

集合、堆和双堆队列


  1. 集合
    集合是有序列(或者其他可迭代的对象)构建的。它们主要用于检查成员资格,因此副本是被忽略的:

    1. >>> set([0,1,2,3,0,1,2,3])
    2. set([0, 1, 2, 3])

    和字典一样,集合元素的顺序是随意的,因此我们不应该以元素的顺序作为依据进行编程:

    1. >>> set(['e','r','t'])
    2. set(['r', 'e', 't'])

    求两个集合的并集:

    1. >>> a = set([1,2,3])
    2. >>> b = set([2,3,4])
    3. >>> a.union(b)
    4. set([1, 2, 3, 4])
    5. >>> a|b
    6. set([1, 2, 3, 4])

  2. 堆(heap)是优先队列的一种,使用优先队列能够以任意顺序增加对象,并且能在任何时间找到最小的元素,也就是说它比用于列表的min方法要有效得多。
    Python中并没有独立的堆类型--只有一个包含一些堆操作的函数模块,这个模块叫做heapq,包括6个函数,前四个直接和堆操作相关。你必须将列表作为堆对象本身。
    heapq模块中重要的函数
    函数   描述
    heappush(heap,x) 将x入堆
    heappop(heap) 将堆中最小的元素弹出
    heapify(heap) 将heap属性强制应用到任意一个列表
    heapreplace(heap,x) 将堆中最小的元素弹出,同事将x入堆
    nlargest(n,iter) 返回iter中第n大的元素
    nsmallest(m,iter) 返回iter中第n小的元素

    heappush函数用于增加堆的项。

    1. >>> from heapq import *
    2. >>> from random import shuffle
    3. >>> data = range(10)
    4. >>> shuffle(data)
    5. >>> heap = []
    6. >>> for n in data:
    7. heappush(heap,n)
    8.  
    9. >>> heap
    10. [0, 4, 1, 5, 7, 3, 2, 9, 6, 8]
    11. >>> heappush(heap,0.5)
    12. >>> heap
    13. [0, 0.5, 1, 5, 4, 3, 2, 9, 6, 8, 7]

    heappop函数弹出最小的元素-- 一般来说都是在索引0出的元素,并且会确保生育元素中最小的那个占据这个位置。

    1. >>> heappop(heap)
    2. 0
    3. >>> heappop(heap)
    4. 0.5
    5. >>> heap
    6. [1, 4, 2, 5, 7, 3, 8, 9, 6]

    heapify函数使用任意列表作为参数,并且通过尽可能少的移位操作,将其转换为合法的堆。

    1. >>> heap = [5,3,4,7,9,8,]
    2. >>> heapify(heap)
    3. >>> heap
    4. [3, 5, 4, 7, 9, 8]

    heapreplace函数不想其他函数那么常用,它弹出堆的最小元素,并且将新元素推入。

    1. >>> heap = [5,3,4,7,9,8,]
    2. >>> heapreplace(heap,0.5)
    3. 3
    4. >>> heap
    5. [0.5, 5, 4, 7, 9, 8]
  3. 双端队列(以及其他集合类型)
    双端队列(Double-ended queue,或称deque)在需要按照元素增加的顺序来移除元素时非常有用。
    双端队列通过可迭代对象(比如集合)创建,而且有些非常有用的方法,如下例所示:
    1. >>> from collections import deque
    2. >>> q = deque(range(5))
    3. >>> q.append(5)
    4. >>> q.appendleft(6)
    5. >>> q
    6. deque([6, 0, 1, 2, 3, 4, 5])
    7. >>> q.pop()
    8. 5
    9. >>> q.popleft()
    10. 6
    11. >>> q.rotate(3)
    12. >>> q
    13. deque([2, 3, 4, 0, 1])
    14. >>> q.rotate(-1)
    15. >>> q
    16. deque([3, 4, 0, 1, 2])

    双端队列好用的原因是它能够有效地在开头增加和弹出元素。

Time


  time模块所包括的函数能够实现以下功能:获得当前时间、操作时间和日期、从字符串读取时间以及格式化时间为字符串。

  函数time.asctime()将当前时间格式化为字符串:  

  1. >>> import time
  2. >>> time.asctime()
  3. 'Mon Apr 28 15:22:24 2014'
time模块中重要的函数
函数 描述
asctime([tuple]) 将时间元组转换为字符串
localtime([secs]) 将描述转换为日期元组,以本地时间为准
mktime(tuple) 将时间元组转换为本地时间
sleep(secs) 休眠 secs秒
strptime(string[,format]) 将字符串解析为时间元组
time() 当前时间

random


  random模块包括返回随机数的函数,可以用于模拟或者用于任何产生随机输出的程序。

random模块中的一些重要函数
函数 描述
random() 返回0≤n<1之间的随机实数,其中0<n≤1
getrandbits(n) 以长整型形式返回n个随机位
uniform(a,b) 返回随机实数n,其中a≤n<b
randrange([start],stop,[step]) 返回range(start,stop,step)中的随机数
choice(seq) 从序列seq中返回随意元素
shuffle(seq[,random]) 原地制定序列seq
sample(seq,n) 从序列seq中选择n个随机切独立的元素

shelve


简单的存储方案 P188

re


  1. 什么是正则表达式
    正则表达式是可以匹配文本片段的模式。最简单的正则表达式就是普通的字符串,可以匹配其自由身。
    · 通配符
    正则表达式可以匹配多余一个字符串,你可以使用一些特殊字符创建这类模式。比如点号(.)可以匹配任何字符(除了换行符),所以正则表达式‘.ython’可以匹配字符串'python'和‘jython’格式字符串

    · 对特殊字符串进行转义
    'python\\.org'可以匹配'python.org'

    · 字符集
    你可以使用中括号括住字符串来创建字符集。字符集可以匹配它所包括的任意字符,所以'[pj]ython'能匹配'python'和'jython',而非其他内容。
    为了反转字符集,可以在开头使用^字符,比如'[^abc]'可以匹配任何除了a、b和c之外的字符。

    · 选择符和子模式
    匹配'python'和'perl',可以写成'python|perl',或者'p(ython|erl)'
    括号括起来的部分,称为子模式。

    · 可选项和重复子模式
    在子模式后面加上问号,它就变成了可选项。它可能出现在匹配字符串中,但并非必须的。例如,下面模式:
    r'(http://)?(www\.)?python\.org'
    只能匹配下列字符串:
    'http://www.python.org'
    ‘http://python.org'
    ’www.python.org'
    ’python.org'

  2. re模块的内容
    re模块中一些重要的函数
    函数 描述
    compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象
    search(pattern.string[,flags]) 在字符串中寻找模式
    match(pattern,string[,flags]) 在字符串的开始处匹配模式
    split(pattern,string[,maxsplit=0]) 更具模式的匹配项来分割字符串
    findall(pattern,string) 列出字符串中模式的所有匹配项
    sub(pat,repl,string[,count=0]) 将字符串中所有的pat的匹配项用repl替换
    excape(string) 将字符串中所有特殊正则表达式字符转义

(未完待续)

《Python基础教程(第二版)》学习笔记 -> 第十章 充电时刻 之 标准库的更多相关文章

  1. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第10章 | 充电时刻

    第10章 | 充电时刻 本章主要介绍模块及其工作机制 ------ 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 一个简 ...

  2. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第12章 | 图形用户界面

    Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ ...

  3. Jquery基础教程第二版学习记录

    本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做 ...

  4. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第04章 | 字典

    第04章:字典 当索引不好用时 Python唯一的内建的映射类型,无序,但都存储在一个特定的键中.键能够使字符.数字.或者是元祖. ------ 字典使用: 表征游戏棋盘的状态,每一个键都是由坐标值组 ...

  5. 第二章、元组和列表(python基础教程第二版 )

    最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引.第一个索引为0,最后一个元素索引为-1. python中包含6种内建的序列:元组.列表.字符串.unicode字符串.buf ...

  6. python基础教程第二版 第一章

    1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...

  7. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第11章 | 文件和素材

    打开文件 open(name[mode[,buffing]) name: 是强制选项,模式和缓冲是可选的 #假设文件不在.会报以下错误: >>> f = open(r'D:\text ...

  8. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  9. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

随机推荐

  1. IE11兼容IE9问题

    注意如果<head>标签里加<meta http-equiv="X-UA-Compatible"content="IE=EmulateIE9" ...

  2. 近期概况&总结

    下午考完英语的学考就要放假啦,是衡中的假期啊QAQ 所以灰常的激动,一点也不想写题(我不会告诉你其实假期只有一个晚上.. 自从CTSC&APIO回来之后就一直在机房颓颓颓,跟着zcg学了很多新 ...

  3. net中使用母版页

    .net中使用母版页的优点 母版页提供了开发人员已通过传统方式创建的功能,这些传统方式包括重复复制现有代码.文本和控件元素:使用框架集:对通用元素使用包含文件:使用 ASP.NET 用户控件等.母版页 ...

  4. 【PHPsocket编程专题(实战篇②)】兼容 Curl/Socket/Stream 的 HTTP 操作类[转]

    <?php /************************************************************ * 描述:HTTP操作类 * 作者:heiyeluren ...

  5. 【Linux常识篇(3)】文件及文件夹的ctime atime mtime的含义详解

    首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime [root@localhost ~]# stat sort2.txt File: 'sort2.txt ...

  6. 【PHP高效搜索专题(2)】sphinx&coreseek在PHP程序中的应用实例

    PHP可以通过三种途径来调用sphinx 通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本) 通过安装SphinxSE,然后创建一个中介sphinxSE类型的表,再通 ...

  7. python各种类型转换-int,str,char,float,ord,hex,oct等

    int(x [,base ])         将x转换为一个整数  long(x [,base ])        将x转换为一个长整数  float(x )               将x转换到 ...

  8. QSS的作用需要正确设置文件编码才能起作用

    QT这个库,无非使用OO对跨平台做了绝佳的封装,这其中的主要工作也就是比较繁琐而已,但并不多么了不起.唯独其中提供的QSS功能,让我感到十分神奇,做出来的效果实在很惊艳,而使用代码却又是如此简单,而且 ...

  9. PowerDesigner概念模型的Notation设置

    原文:PowerDesigner概念模型的Notation设置 在进行数据库设计模型时,分为概念模型设计和物理模型设计两种,概念模型主要是反映真是 世界中的业务关系,也就是我们常用的实体关系图.物理模 ...

  10. C# Java间进行RSA加密解密交互

    原文:C# Java间进行RSA加密解密交互 这里,讲一下RSA算法加解密在C#和Java之间交互的问题,这两天纠结了很久,也看了很多其他人写的文章,颇受裨益,但没能解决我的实际问题,终于,还是被我捣 ...