Python核心编程第二版(中文).pdf 目录整理

时间:2023-01-05 14:49:33

python核心编程目录

Chapter1:欢迎来到python世界!-页码:7

1.1什么是python

1.2起源  :罗萨姆1989底创建python

1.3特点

1.3.1高级

1.3.2面向对象

1.3.3可升级

1.3.4可扩展

1.3.5可移植性:python使用C写的。

1.3.6易学

1.3.7易读

1.3.8易维护

1.3.9健壮性

1.3.10高效的快速原型开发工具

1.3.11内存管理器 :内存管理由python解释器负责,开发仅仅致力于开发计划中的应用程序。

1.3.12解释性和(字节)编译性:无需编译,当执行py文件,会生成.pyc或.pyo文件

1.4下载和安装python

1.5运行python

1.5.1命令行的交互式解释器

1.5.2从命令行启动脚本

1.5.3集成开发环境

1.5.4其他的集成开发环境和执行环境

1.6python文档

1.7比较python(python与其他语言的比较)

Chapter2:Python起步-页码:31

注:语句和表达式的区别

语句是使用关键词来组成命令,告诉解释器要做什么。

表达式没有关键词,可以使算术表达式,也可以是使用括号调用的函数。

2.1程序输出,print语句及“Hello World” :print是关键字

Print ‘%s is number %d!’%(‘python’,1) #print与字符串格式运算符(%)结合使用。

2.2程序输入和raw_input()内建函数  :raw_input()是内建函数

2.3注释#

2.4运算符 :算数运算符+ - * / // % ** 比较运算符,逻辑运算符

2.5变量和赋值

2.6数字:int,long,bool,float,complex(复数)

2.7字符串

2.8列表[]和元组()

2.9字典{}

2.10代码块及缩进对齐

2.11 if语句

2.12 while循环

2.13 for循环和range()内建函数:  enumerate()内建函数可循环索引和元素

2.14列表解析:可使用for循环将所有值放在一个列表里。

2.15文件和内建函数open(),file()

2.16错误和异常

2.17函数:python中的函数使用小括号()调用。

2.18类

2.19模块:文件名字,不包括.py

2.20实用的函数:dir,help,len,open,raw_input,str,type

Chapter3:Python基础-页码:59

3.1语句和语法

3.1.1注释(#)

3.1.2继续(\)

3.1.3多个语句构成代码组(:)

3.1.4代码组由不同的缩进分隔

3.1.5同一行书写多个语句(;)

3.1.6模块

3.2变量赋值:= 链式赋值,多元赋值

3.3标识符

3.3.1合法的python标识符:大小写敏感

3.3.2关键字:import keyword; print keyword.kwlist 关键字加对象=语句 直接使用

3.3.3内建:dir(__builtins__) 直接使用

3.3.4专用下划线标识符_xxx:私有的 __xxx__:系统定义的名字 __xxx:类中私有的变量名

3.4基本风格指南

3.4.1模块结构和布局

如果模块被导入,__name__的值为模块名字

如果模块是被直接执行,__name__的值为__main__

3.4.2在主程序中书写测试代码

3.5内存管理

3.5.1变量定义

3.5.2动态类型

3.5.3内存分配

3.5.4引用计数

3.5.5垃圾收集

3.6第一个Python程序

3.7相关模块和开发工具

Chapter4Python对象-页码:86

4.1python对象:包括三个特性:身份id(),类型type(),值

4.1.1对象属性:用.标记法来访问属性,最常用的属性是函数和方法

4.2标准类型

4.3其他内建类型

4.3.1类型对象和type类型对象

4.3.2None,Python的Null对象:布尔值为False的对象列举。

4.4内部类型

4.4.1代码对象

4.4.2帧对象

4.4.3跟踪记录对象

4.4.4切片对象

4.4.5省略对象

4.4.6XRange对象

4.5标准类型运算符

4.5.1对象值的比较:< <= > >= != ==

4.5.2对象身份的比较:is 或者 id(a)==id(b

4.5.3布尔类型的运算符:not,and,or

4.6标准类型内建函数

4.6.1 type()

4.6.2 cmp()

4.6.3 str()和repr()(及反引号运算符``)

4.6.4type()和isinstance():isinstance(a,type(a))为True

4.6.5Python类型运算符和内建函数总结

4.7类型工厂函数:int,str,list,tyoe

4.8标准类型的分类

4.8.1存储模型

原子类型:数字,字符串

容量类型 列表,元组,字典

4.8.2更新模型

不可变类型:数字,字符串,元组:看似更新了,其实是新生成一个对象,可以用id查看。

可变:列表,字典

4.8.3访问模型

直接访问:数字

顺序访问:字符串,列表,元组

映射访问:字典

4.9不支持的类型

Chapter5数字-页码:116

5.1数字类型

5.2整型

5.2.1布尔型:True False

5.2.2标准整数类型:int:长度与计算机的位数有关,有32位-2**31到2**31-1,也有64位

5.2.3长整型:无上限

5.2.3整型和长整型的统一

5.3双精度浮点数:8个字节

5.4复数

5.4.1复数的内建属性

5.5运算符

5.5.1混合模式运算符,优先级复数,浮点数,长整型,整型

5.5.2标准类型运算符

5.5.3算数运算符 /地板除:舍去小数部分,返回一个不大于结果的整数部分(注意负数)

若有:from __future__ import division:/代表浮点数除法,//代表地板除(整除){浮点数相除,也是整除,最后结果加.0}

若无:from __future__ import division:当数字有浮点数,/代表浮点数除法,当数字都是整数,/代表地板除,//一直为地板除,若有浮点数,结果加.0

5.5.4*位运算符(只适用于整数)

5.6内建函数与工厂函数

5.6.1标准类型函数:cmp(),str(),type()

5.6.2数字类型函数:int(),long(),float(),complex(),bool()

功能函数

abs():返回参数的绝对值

coece():数据类型转换函数,返回一个包含类型转换完毕的两个数值元素的元组

divmod():内建函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组。

>>> divmod(5,3)

(1, 2)

>>> divmod(-5,3)

(-2, 1)

round():用于对浮点数进行四舍五入运算

>>> round(4.4)

4.0

>>> round(4.5)

5.0

>>> round(-4.4)

-4.0

>>> round(-4.5)

-5.0

pow():进行指数运算

5.6.3仅用户整数的函数

5.7其他数字类型

5.7.1布尔“数”

5.7.2十进制浮点数

5.8相关模块:decimal,array,math/cmath,operator,random

Chapter6序列字符串列表和元组-页码:151

如果是标准类型的内建函数(dir(__builtins__)可查到),那么执行形式内建函数序列对象),如果是某序列的内建函数(dir(str)dir(list)或dir(tuple)或dir(dict)或dir(file)等可以查到),那么执行形式序列对象.内建函数。

6.1序列

6.1.1标准类型操作符

6.1.2序列类型操作符: in和not in,+,*,切片

6.1.3内建函数(BIFs):list,str,tuple,enumerate,len,reversed,zip

6.2字符串:单引号和双引号都可以,转义字符在引号中起作用

6.3字符串和操作符

6.3.1标准类型操作符

6.3.2序列操作符:切片,成员操作符in,not in

6.4只适合于字符串的操作符

6.4.1格式化操作符(%)

6.4.2字符串模板:更简单的替代品

6.4.3原始字符串操作符(r/R)

6.4.4 Unicode字符串操作符(u/U)

6.5内建函数

6.5.1标准类型函数:cmp(),sorted():排序总返回列表

6.5.2序列类型函数:len(),enumerate(),zip()

6.5.3字符串类型函数:raw_input(),str(),Unicode()

6.6字符串内建函数: join(列表), split(分隔符),引用 字符串对象.内建函数: dir(str)

>>> L=['a','b','c']

>>> s='_'.join(L) #join是将列表组合为字符串

>>> print s

a_b_c

>>> r=s.split('_') #split是将字符串分隔为列表

>>> print r

['a', 'b', 'c']

6.7字符串的独特特性

6.7.1特殊字符串和控制字符

6.7.2三引号:所见即所得

6.7.3字符串不变性

6.8 Unicode

6.8.1术语

6.8.2什么是Unicode?

6.8.4Codecs是什么?

6.8.5编码解码

6.8.6把Unicode应用到实际应用中

6.8.7从现实中得到的教训

6.8.8 Python的Unicode支持

6.9相关模块:string,re

6.10字符串关键点总结

6.11列表[]

6.12操作符

6.12.1标准类型操作符:比较操作符,俩列表的元素分别比较,直到一方胜出为止。

6.12.2序列类型操作符:切片,成员关系操作(in,not in),连接操作符+,append(),*

6.12.3列表类型操作符和列表解析:用方括弧和for循环

6.13内建函数

6.13.1标准类型函数:cmp():同比较操作符

6.13.2序列类型函数:

len(),max(),min(),sorted(),reversed(),enumerate(),zip(),sum(),list(),tuple()

6.13.3列表类型内建函数:range()

range(1,4):1,2,3

range(4,1,-1):4,3,2

range(-4,-1):-4,-3,-2

range(-1,-4,-1):-1,-2,-3

6.14列表类型的内建函数:列表对象.内建函数:

dir(list):append(),insert(),pop(),remove()

注:字符串是不可变的:不可变对象的方法是不能改变它们的值的,所以它们必须返回一个新的对象。而列表是可变的,在使用可变对象的方法,这些操作会在原地执行操作,也就是说现有的列表内容会改变,但是没有返回值,不要傻傻的a=a.append()!

6.15列表的特殊特性

6.15.1用列表构建其他数据结构:堆栈:后进先出。队列:新进新出。

6.16元组()

6.17元组操作符和内建函数

6.17.1标准类型操作符,序列类型操作符和内建函数:与列表一致。

6.17.2元组类型操作符和内建函数,内建方法:暂无。

6.18元组的特殊特性

6.18.1不可变给元组带来了什么影响?

6.18.2元组也不是那么“不可变”:+更新成新对象。可以改变元组的列表元素的某个值。

6.18.3默认集合类型

6.18.4单元素元组:(‘xyz’,)

6.18.5字典的关键字

6.19相关模块:copy,re,operator

6.20拷贝Python对象浅拷贝和深拷贝

6.21序列类型小结

Chapter7映射和集合类型-页码:250

7.1映射类型:字典{}可查看字典类型的属性dir(dict)

7.2映射类型操作符:不支持拼接+和重复*的操作

7.2.1标准类型操作符

7.2.2映射类型操作符[],in,not in

7.3映射类型的内建函数和工厂函数

7.3.1标准类型函数[type(),str()和cmp()]

7.3.2映射类型相关的函数:dict(),len(),hash()

7.4映射类型的内建函数dir(dict):keys(),values(),items(),get(),copy()

7.5字典的键

7.5.1不允许一个键对应多个值

7.5.2键必须是可哈希的:不可变类型都是可哈希的。

7.6集合类型([])

7.7集合类型操作符

7.7.1标准类型操作符(所有的集合类型)

7.7.2集合类型操作符(所有的集合类型)

7.7.3集合类型操作符(仅适用于可变集合)

7.8内建函数

7.8.1标准类型函数:len()

7.8.2集合类型工厂函数:set(),frozenset()

7.9集合类型内建方法

7.9.1方法(所有的集合方法)

7.9.2方法(仅适用于可变集合)

7.9.3操作符和内建方法比较

7.10操作符,函数/方法

7.11相关模块:set

Chapter8条件和循环-页码:285

8.1 if语句

8.1.1多重条件表达式:and,or,not

8.1.2单一语句的代码块

8.2 else语句

8.2.1避免“悬挂else”

8.3 elif语句

8.4条件表达式(即“三元操作符”)

X if C else Y   #C是条件表达式;X是C为True时的结果;Y是C为False时的结果

8.5while语句

8.5.1一般语法

8.5.2计数循环

8.5.3无限循环

8.6 for语句:可用在列表解析和生成器表达式中。

8.6.1一般语法:序列或迭代器

8.6.2用于序列类型:字符串,列表,元组

通过序列项迭代 for x in 对象  print x

通过序列索引迭代for x in range(len(对象)) print对象[x]

通过项和索引迭代 for x,y in enumerate(对象)  print x,y

8.6.3用于迭代器类型

8.6.4 range()内建函数:range()的完整语法

8.6.5 xrange()内建函数

8.6.6与序列相关的内建函数

sorted()和zip()返回一个序列(列表)

reversed()和enumerate()返回迭代器(类似序列)

8.7 break语句:结束当前循环然后跳转到下条语句

8.8 continue语句:终止当前循环,并忽略剩余的语句,然后回到循环顶端,进行下一次迭代。

在while和for循环里,while循环是条件性的,而for循环是迭代的。

8.9 pass语句:不做任何事。开发和调试时,可先把结构定下来。

Pass在任何需要的语句块里都可以使用(如if,for,while,elif,else,class,def,try,except,finally)

8.10 再谈else语句

if else,while else,for else:只要循环正常结束(不是通过break),else子句就会被执行。

8.11迭代器和iter()函数

8.11.1什么是迭代器?

8.11.2为什么要迭代器?

8.11.3如何迭代? next(),reversed(),enumerate(),any(),all()

8.11.4使用迭代器:序列(iter)和字典(iterkeys,itervalues,iteritems),文件

8.11.5可变对象和迭代器

8.11.6如何创建迭代器:iter(对象)

8.12列表解析:expr for iter_var in iterable [if cond_expr],最后产生列表。可替换map()和lambda及filter()和lambda

8.13生成器表达式

8.14 R相关模块

Chapter9文件和输入输出-页码:317

9.1文件对象

9.2文件内建函数[open()和file()]

File_object=open(file_name,access_mode=’r’,buffering=-1)

9.2.1工厂函数file()

9.2.2通用换行符支持(UNS)

9.3文件内建方法:dir(file)

9.3.1输入:read(),readline(),   readlines():将列表变为文件,无行结束符

9.3.2输出:write(),   writelines():将文件变为列表,不会删除行结束符

9.3.3文件内移动:seek()

9.3.4文件迭代:for eachline in f:

9.3.5其他:close()

9.3.6文件方法杂项:os模块,文件内建函数整理说明。

9.3.6文件内建属性(数据属性)

9.5标准文件:sys模块

9.6命令行参数:sys.argv属性

9.7文件系统 os模块及os.path模块中路径名访问函数整理

9.8文件执行

9.9永久存储模块

9.9.1 pickle和marshal模块

9.9.2 DBM风格的模块

9.9.3 shelve模块

9.10相关模块

Chapter10:错误和异常-页码:345

10.1什么是异常

10.1.1错误

10.1.2异常

10.2 Python中的异常:各个Error说明:NameError,ZeroDivisionError,SyntaxError,IOError,IndexError,KeyError,AttributeError

10.3检测和处理异常

10.3.1 try-except语句:如果发生异常,try子句的剩余语句会被忽略,控制流立即跳转到对应的处理器。没有发生异常,控制流就会忽略except语句继续执行。

10.3.2封装内建函数

10.3.3带有多个except的try语句

10.3.4处理多个异常的except语句

10.3.5捕获所有异常:try: except Exception,e:

BaseException:(KeyboardInterrupt,SystemExit,Exception,所有内建异常)

10.3.6异常参数e

10.3.7在应用使用我们封装的函数

10.3.8 else子句

10.3.9 finally子句

10.3.10 try-finally语句

10.3.11 try-except-else-finally:厨房一锅端

10.4上下文管理

10.4.1 with语句

10.4.2 *上下文管理协议

10.5 *字符串作为异常

10.6触发异常

之前的异常都是解释器引发的,而程序员在编写API时也可以程序触发异常。

10.6.1 raise语句:raise Exception(‘[%s]错误信息提示’[%变量])

raise语句放在try块中,if条件满足则raise(抛出异常),通过except捕捉Exception异常。

10.7断言

10.7.1断言语句:assert expression[,’错误信息提示’]

Assert语句放在try块中,通过except捕捉AssertionError异常。

如果断言成功,则不采取任何措施。

如果断言失败,则触发AssertionError(断言错误)的异常。AssertionError异常和其他异常一样可以用try-except语句块捕捉,如果没有捕捉,他将终止程序运行并提示traceback。

10.8标准异常:Python内建异常整理,异常是类。

根异常BaseException的子类:KeyboardInterrupt,SystemExit,Exception

Exception的子类:其他所有内建异常

10.9*创建异常

10.10为什么用异常(现在)?

10.11到底为什么要异常?

10.12异常和sys模块

10.13相关模块

Chapter11:函数和函数式编程-页码:388

11.1什么是函数?

11.1.1函数VS过程:过程时没有返回值的函数(隐式返回默认值None)

11.1.2返回值与函数类型

11.2调用函数

11.2.1函数操作符

11.2.2关键字参数

11.2.3默认参数

11.2.4参数组-例子

通过一个把元组(非关键字参数)或字典(关键字参数)作为参数组传递给函数,可以将所有参数放进一个元组或字典中。如:

func(*tuple_grp_nonkw_args,**dict_grp_kw_args)

11.3创建函数

11.3.1 def语句

11.3.2声明与定义比较

11.3.3前向引用

11.3.4函数属性

11.3.5内部/内嵌函数

11.3.6 *函数(与方法)装饰器

11.4传递函数:

1.def foo(): foo(函数对象的引用)和foo()(函数对象的调用)

2.foo作为函数的入参:foo1(foo)

11.5形式参数

11.5.1位置参数

11.5.2默认参数

11.6可变长度的参数

11.6.1非关键字可变长参数(元组)

11.6.2关键字变量参数(Dictionary)

11.6.3调用带有可变长参数对象函数

11.7函数式编程

11.7.1匿名函数与lambda

11.7.2内建函数apply(),filter(),map(),reduce()

filter(func,seq)过滤,选出为真的序列(入参什么类型,结果就是什么类型)

map(func,seq)映射,将调用函数的结果返回来,列表类型。

reduce(func,seq),func为二元函数,只接受两个参数,返回单一的,然后再与序列下一个元素来获取又一个值,知道迭代整个seq,最终,返回一个值。

11.7.3偏函数应用

11.8变量作用域

11.8.1全局变量与局部变量

11.8.2 globa语句

11.8.3作用域的数字

11.8.4闭包

11.8.5作用域和lambda

11.8.6变量作用域和名字空间

11.9递归

11.10生成器

11.10.1简单的生成器特性

11.10.2加强的生成器特性

注:11.7.3-11.10.2未仔细看,练习题未做。

Chapter12模块-页码:450

12.1什么是模块

12.2模块和文件

12.2.1模块名称空间:通过句点属性标志指定了各自的命名空间

12.2.2搜索路径和路径搜索PYTHONPATH和sys.path

12.3名称空间:名称到对象的映射。

三个命名空间:局部命名空间,全局命名空间,内建命名空间

12.3.1名称空间与变量作用域比较

12.3.2名称查找,确定作用域,覆盖:优先局部,再全局,再内建。

12.3.3无限制的名称空间

12.4导入模块

12.4.1语句:import:顺序:Python标准库模块,Python第三方模块,应用程序自定义模块

解释器执行到这条语句,则会在搜索路径中找到了指定的模块,就会加载它。

12.4.2 from import语句:导入指定模块的是模块属性from a[.b.c] import d

12.4.3多行导入:\

12.4.4扩展的import语句(as):from a import b as c

12.5模块导入的特性

12.5.1载入时执行模块

12.5.2导入(import)和加载(load):加载只在第一次导入时发生

12.5.3导入到当前名称空间的名称

12.5.4被导入到导入者作用域的名字

12.5.5关于 __future__

12.5.6警告框架

12.5.7从ZIP文件导入模块(zip文件包括.py,.pyc,.pyo文件)

12.5.8”新的”导入钩子

12.6模块内建函数

12.6.1__import__()

12.6.2 globals()和locals()

12.6.3 reload()

12.7包:使用标准的import和from-import语句导入包中的模块

12.7.1目录结构:每个包都有__init__.py文件

12.7.2使用from –import导入包

12.7.3绝对导入:名字通过Python路径(sys.path或PYTHONPATH)来访问

12.7.4相对导入:句点导入

12.8模块的其他特性

12.8.1自动载入的模块:__builtin__会被自动导入

12.8.2阻止属性导入:属性名称前加_

12.8.3不区分大小的导入?

12.8.4源代码编码

12.8.5导入循环?

12.8.6模块执行

12.9相关模块

Chapter13面向对象编程OOP-页码:473

13.1介绍:

13.1.1类和类实例

类是对象的定义,而实例是“真正的实物”,它存放了类中所定义的对象的具体信息。

class 类名(继承的父类,如object):object是“所有类之母”

13.1.2方法:类的功能通俗名称就是方法:def 方法名(self)

方法定义在类的定义中,但只能被实例所调用。所以用self,代表实例对象本身。

定义类(和方法)2.创建实例 3.用实例调用方法

13.1.3创建一个类(类定义)

__init__()方法:初始化一些值或初始化一些操作(如登录数据库),类的实例化会隐式调用__init__()方法,实例化的入参完全和__init__()方法接收的入参一致(除了self)

13.1.4创建子类

13.1.5命名类,属性,方法 命名规范

类名:通常由大写字母打头:AbcDef

属性(变量或常量):名词:小写:abc

方法:使用谓词(动词加对象):小写_小写:abc_def

13.2面向对象编程

13.2.1面向对象设计OOD与面向对象编程OOP的关系

13.2.2现实世界中的问题

13.2.3*常用术语

13.3类

13.3.1创建类

13.3.2声明与定义:无区别,同时进行

13.4类属性:属于一个对象的数据和函数元素,通过句点标识符访问。在调用类的方法前,需要创建一个实例。

13.4.1类的数据属性

数据属性仅仅是所定义的类的变量。不依赖任何类实例。

13.4.2方法

方法仅应用在类类型的对象(实例)

13.4.3决定类的属性

通过dir(类名)或类名.__dict__可查看类的属性

13.4.4特殊的类属性:__name__,__doc__,__bases__,__dict__,__module__,__class__

13.5实例

13.5.2 __init__()“构造器”方法

调用类时,传进的任何参数都交给了__init__(),__init__()是解释器为你创建一个实例后调用的第一个方法。另,__init__()不允许放回任何对象(应当为None

13.5.3 __new__() “构造器”方法

13.5.4 __del__() “解构器”方法

13.6实例属性

实例仅拥有数据属性(方法严格来说是类属性)

13.6.1“实例化”实例属性(或创建一个更好的构造器)

13.6.2查看实例属性:通过dir和__dict__查看

13.6.3特殊的实例属性:__class__和__dict__

13.6.4内建类型属性

13.6.5实例属性vs类属性

13.7从这里开始校对—绑定和方法调用

方法是类属性。方法只有在其所属的类拥有实例时才能被调用,方法才绑定到实例中。方法的第一个参数都是变量self。

13.7.1调用绑定方法

13.7.2调用非绑定方法:派生一个子类,覆盖父类的方法。

13.8静态方法和类方法:未看

13.8.1 staticmethod()和classmethod内建函数

13.8.2使用函数修饰符

13.9组合:将不同的类混合到其他类中

13.10子类和派生:相同的类但有一些不同的功能

13.10.1创建子类

13.11继承:描述了基类的属性如何遗传给派生类。一个子类可以继承它的基类的任何属性(除了__doc__)。

13.11.1__bases__类属性

13.11.2通过继承覆盖(Overriding)方法:如果方法名相同,优先用子类自己的方法。

13.11.3从标准类型派生:未看

13.11.4多重继承:未看

13.12类,实例和其他对象的内建函数

13.12.1 issubclass():是否是子类issubclass(sub,sup)

13.12.2 isinstance():是否是实例isinstance(obj1,obj2)

13.12.3 hasattr(),getattr(),setattr(),delattr()

13.12.4 dir()

13.12.5 super()

13.12.6 vars()

13.13用特殊方法定制类:未看

13.13.1简单定制(RoundFloat2)

13.13.2数值定制(Time60)

13.13.3迭代器(RandSeq和AnyIter)

13.13.4*多类型定制(NumStr)

13.14私有化

13.15*授权

13.15.1包装

13.15.2实现授权

13.16新式类的高级特性(Python 2.2+)

13.16.1新式类的通用特性

13.13.2__slots__类属性

13.16.3特殊方法__getattribute__()

13.16.4描述符

13.16.5 Metaclasses(元类)和__metaclass__

13.17相关模块和文档

Chapter14执行环境-页码:582  以后再看

14.1可调用对象:函数,方法,类,以及类的实例

14.1.1函数:内建函数BIFs,用户定义函数UDF

14.1.2方法:内建方法BIM,用户定义的方法UDM

14.1.3类

14.1.4类的实例:__call__

14.2代码对象

14.3可执行的对象声明和内建函数

14.3.1 callable()

14.3.2 compile()

14.3.3 eval()

14.3.4 exec

14.3可执行对象语句和内建函数

14.3.5 input()

14.3.6使用Python在运行时生成和执行Python代码

14.4执行其他(Python)程序

14.4.1导入

14.4.2 execfile()

14.4.3将模块作为脚本执行

14.5执行其他(非Python)程序

14.5.1 os.system()

14.5.2 os.popen()

14.5.3 os.fork(),os.exec*(),os.wait*()

14.5.4 os.spawn*()

14.5.5 subprocess模块

14.5.6相关函数

14.6受限执行

14.7结束执行

14.7.1 sys.exit() and SystemExit

14.7.2 sys.exitfunc()

14.7.3 os._exit() Function os._exit()函数

14.7.4 os.kill() Function

14.8各种操作系统接口

14.9相关模块

Chapter15正则表达式-页码:621

15.1介绍/动机

15.1.1您的第一个正则表达式

15.2正则表达式使用的特殊符号和字符:整理表

15.2.1用管道符号(|)匹配多个正则表达式模式

15.2.2匹配任意一个单个的字符(.)

15.2.4从字符串的开头或结尾或单词边界开始匹配(^ / $ / \b / \B)

15.2.5创建字符类([]):任何一个字符

15.2.5.1[]中指定范围(-)和否定(^)

15.2.6使用必报操作符(*,+,?,{})实现多次出现/重复匹配

15.2.7特殊字符表示字符集

15.2.8用圆括号(())组建组:为多个字符添加重复操作符

15.3正则表达式和python语言

15.3.1 re模块:核心函数和方法:compile,match,search,findall,finditer,split,sub,group,groups  :函数的pattern指的是正则表达式

15.3.2使用compile()编译正则表达式

compile(pattern,flags=0)

15.3.3匹配对象和group(),groups()方法

15.3.4用match()匹配字符串:

match(pattern,string,flags=0)

从头开始匹配:返回regex对象。通过group提取匹配后的字符。

15.3.5 search()在一个字符串中查找一个模式(搜索与匹配的比较):

search(pattern,string,flags=0)

从任意位置匹配:返回regex对象。通过group提取匹配后的字符。

15.3.6匹配多个字符串(|)

15.3.7匹配任意单个字符(.):除了\n

15.3.8创建字符集合([])

15.3.9重复,特殊字符和子组:group(),groups()整理

15.3.10从字符串的开头或结尾匹配及在单词边界上的匹配

15.3.11用findall()找到每个出现的匹配部分:返回列表或空列表

findall(pattern,string)

15.3.12用sub[和subn()]进行搜索和替换:返回替换后的字符串

sub(pattern,string,max=0)

15.3.13用split()分割(分隔模式):返回列表

re的split是根据正则表达式分隔字符串。字符串的split()是通过固定字符分隔。

split(pattern,string,max=0)

python原始字符串(raw strings)的用法

15.4正则表达式示例

15.4.1匹配一个字符串

15.4.2搜索与匹配的比较,“贪婪”匹配

Chapter16网络编程-页码:655

16.介绍

16.1.1什么是客户/服务器架构

16.1.2客户/服务器网络编程

16.2套接字:通讯断点

16.2.1什么是套接字? 通信接口?

套接字家族:基于文件型的AF_UNIX和基于网络型的AF_INET

16.2.2套接字地址:主机与端口

16.2.3面向连接SOCK_STREAM与无连接SOCK_DGRAM

16.3 Python中的网络编程

16.3.1 socket()模块函数

16.3.2套接字对象(内建)方法

Chapter17网络客户端编程-页码:685

Chapter18多线程编程-页码:721

Chapter19图形用户界面编程-页码:748

Chapter20Web编程-页码:781

Chapter21数据库编程-页码:841

Chapter22拓展Python-页码:880

Chapter23其他话题-页码:901