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

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

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

    >>> set(['e','r','t'])
    set(['r', 'e', 't'])

    求两个集合的并集:

    >>> a = set([1,2,3])
    >>> b = set([2,3,4])
    >>> a.union(b)
    set([1, 2, 3, 4])
    >>> a|b
    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函数用于增加堆的项。

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

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

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

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

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

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

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

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

Time


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

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

>>> import time
>>> time.asctime()
'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. VirtualBox 给虚拟机绑定IP

    在VirtualBox中,有时候打开虚拟机,会出现Waiting for 60 seconds more for network configuration这种情况,从而使得开机变得很慢. 通过以下操 ...

  2. 243. Shortest Word Distance

    题目: Given a list of words and two words word1 and word2, return the shortest distance between these ...

  3. 转response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  4. org.json和json-lib比较

    经常会用到JSON格式才处理,尤其是在Http请求的时候,网上可以找到很多json处理的相关工具,如org.json和json-lib,下面两段源代码是分别使用这两个工具解析和构造JSON的演示程序. ...

  5. thrift总结

    定义: Apache Thrift是一个facebook建立的RPC框架,现在是一个Apache的顶级项目.Thrift允许通过一个跨语言的定义文件的方式定义数据类型和服务接口,[这个文件]作为[RP ...

  6. struct inode 和 struct file

    1.struct inode──字符设备驱动相关的重要结构介绍 内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符.Linux2.6.27内核中,inode结构体具体定义如下: ...

  7. 【C#设计模式——创建型模式】抽象工厂模式

    抽象工厂模式比工厂模式具有更高层次的抽象性.当要返回一系列相关类中的某一个,而每个类都能根据需要返回不同的对象时,可以选择这种模式.直接进入示例. 示例描述:完成花园的规划,多种花园种类,每个里面多种 ...

  8. MinGW GCC下sleep()函数问题

    在MinGW GCC下编译带sleep()函数的测试程序,不管是包含了unistd.h头文件,还是stdio.h.stdlib.h头文件,就是找不到该函数的定义!在linux下,sleep()函数的头 ...

  9. servlet基础讲解

    基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...

  10. 【Todo】淘宝十年产品事-读书笔记

    书籍位置: /Users/baidu/Documents/Data/Interview/业界/淘宝十年产品事.pdf