python基础教程(第二版)目录

第1章 基础知识 1

1.1 安装 Python 1

1.1.1 Windows 1

1.1.2 Linux 和 UNIX 3

1.1.3 苹果机(Macintosh)  4

1.1.4 其他发布版 5

1.1.5 时常关注,保持更新 6

1.2 交互式解释器 6

1.3 算法是什么 7

1.4 数字和表达式 8

1.4.1 长整型数 9

1.4.2 十六进制和八进制 10

1.5 变量 10

1.6 语句 11

1.7 获取用户输入 12

1.8 函数 13

1.9 模块 14

1.9.1 cmath 和复数 14

1.9.2 回到__future__ 15

1.10 保存并执行程序 15

1.10.1 通过命令提示符运行Python脚本 16

1.10.2 让脚本像普通程序一样运行 17

1.10.3 注释 18

1.11 字符串 19

1.11.1 单引号字符串和转义引号 19

1.11.2 拼接字符串 20

1.11.3 字符串表示,str和repr 20

1.11.4 input 和 raw_input 的比较 21

1.11.5 长字符串、原始字符串和Unicode 22

1.12 小结 24

1.12.1 本章的新函数 25

1.12.2 接下来学什么 25

第2章 列表和元组 26

2.1序列概览 26

2.2通用序列操作 27

2.2.1 索引 27

2.2.2 分片 29

2.2.3 序列相加 31

2.2.4 乘法 31

2.2.5 成员资格 32

2.2.6 长度、最小值和最大值 33

2.3 列表:Python的“苦力" 34

2.3.1 list函数 34

2.3.2 基本的列表操作 34

2.3.3 列表方法 36

2.4 元组:不可变序列 41

2.4.1 tuple函数 42

2.4.2 基本元组操作 42

2.4.3 那么,意义何在 42

2.5 小结 43

2.5.1 本章的新函数 43

2.5.2 接下来学什么 43

第3章 使用字符串 44

3.1 基本字符串操作 44

3.2 字符串格式化:精简版 44

3.3 字符串格式化:完整版 46

3.3.1 简单转换 47

3.3.2 字段宽度和精度 47

3.3.3 符号、对齐和0填充 47

3.4 字符串方法 49

3.4.1 find 49

3.4.2 join 50

3.4.3 lower 51

3.4.4 replace 51

3.4.5 split 52

3.4.6 strip* 52

3.4.7 translate 52

3.5小结 54

3.5.1 本章的新函数 54

3.5.2 接下来学什么 54

第4章 字典:当索引不好用时 55

4.1 字典的使用 55

4.2 创建和使用字典 56

4.2.1 diet 函数 56

4.2.2 基本字典操作 57

4.2.3 字典的格式化字符串 58

4.2.4 字典方法 59

4.3 小结 64

4.3.1 本章的新函数 64

4.3.2 接下来学什么 64

第5章 条件、循环和其他语句 65

5.1 print和import的更多信息 65

5.1.1 使用逗号输出 65

5.1.2 把某件事作为另一件事导入 66

5.2 赋值魔法 67

5.2.1 序列解包 67

5.2.2 链式赋值 68

5.2.3 增量赋值 68

5.3 语句块:缩排的乐趣 69

5.4 条件和条件语句 69

5.4.1 这就是布尔变量的作用 69

5.4.2 条件执行和If语句 70

5.4.3 else 子句 71

5.4.4 elif 子句 71

5.4.5 嵌套代码块 71

5.4.6 更复杂的条件 72

5.4.7 断言 76

5.5 循环 76

5.5.1 while 循环 77

5.5.2 for 循环 77

5.5.3 循环遍历字典元素 78

5.5.4 一些迭代工具 79

5.5.5 跳出循环 80

5.5.6 循环中的else子句 82

5.6 列表推导式——轻量级循环 82

5.7 三人行 83

5.7.1 什么都没发生 84

5.7.2 使用del删除 84

5.7.3 使用exec和eval执行和求值字符串 85

5.8 小结 87

5.8.1 本章的新函数 88

5.8.2 接下来学什么 88

第6章 抽象 89

6.1 懒惰即美德 89

6.2 抽象和结构 90

6.3 创建函数 90

6.3.1 记录函数 91

6.3.2 并非真正函数的函数 92

6.4 参数魔法 92

6.4.1 值从哪里来 93

6.4.2 我能改变参数吗 93

6.4.3 关键字参数和默认值 97

6.4.4 收集 99

6.4.5 反转过程 101

6.4.6 练习使用参数 102

6.5 作用域 103

6.6 递归 105

6.6.1 两个经典:阶乘和幂 106

6.6.2 另外一个经典:二元查找 107

6.7 小结 110

6.7.1 本章的新函数 110

6.7.2 接下来学什么 111

第7章 更加抽象 112

7.1 对象的魔力 112

7.1.1 多态 113

7.1.2 封装 115

7.1.3 继承 117

7.2 类和类型 117

7.2.1 类到底是什么 117

7.2.2 创建自己的类 118

7.2.3 特性、函数和方法 119

7.2.4 类的命名空间 121

7.2.5 指定超类 122

7.2.6 调查继承 122

7.2.7 多个超类 123

7.2.8 接口和内省 124

7.3 一些关于面向对象设计的思考 125

7.4 简明总结 125

7.4.1 本章的新函数 126

7.4.2 接下来学什么 126

第8章 异常 127

8.1 什么是异常 127

8.2 按自己的方式出错 127

8.2.1 raise 语句 127

8.2.2 自定义异常类 128

8.3 捕捉异常  129

8.4 不止一个except子句 130

8.5 用一个块捕捉两个异常 131

8.6 捕捉对象 131

8.7 真正的全捕捉 131

8.8 万事大吉 132

8.9 最后 134

8.10 异常和函数 134

8.11 异常之禅 135

8.12 小结 136

8.12.1 本章的新函数 137

8.12.2 接下来学什么 137

第9章 魔法方法、属性和迭代器 138

9.1 准备工作 138

9.2 构造方法 139

9.3.1 基本的序列和映射规则 144

9.3.2 子类化列表,字典和字符串 146

9.4 更多魔力 147

9.5 属性 147

9.5.1 property 函数 148

9.5.2 静态方法和类成员方法 149

9.5.3 __getattr__、__setattr__和它的朋友们 150

9.6 迭代器 151

9.6.1 迭代器规则 151

9.6.2 从迭代器得到序列 153

9.7 生成器 153

9.7.1 创建生成器 153

9.7.2 递归生成器 154

9.7.3 通用生成器 156

9.7.4 生成器方法 156

9.7.5 模拟生成器 157

9.8 八皇后问题 158

9.8.1 生成器和回溯 158

9.8.2 问题 159

9.8.3 状态表示 159

9.8.4 寻找冲突 159

9.8.5 基本情况 160

9.8.6 需要递归的情况 161

9.8.7 打包 162

9.9 小结 163

9.9.1 本章的新函数 164

9.9.2 接下来学什么 164

第10章 充电时刻 165

10.1 模块 165

10.1.1 模块是程序 165

10.1.2 模块用于定义 167

10.1.3 让你的模块可用 169

10.1.4 包 171

10.2 探究模块 172

10.2.1 模块中有什么? 172

10.2.2 用help获取帮助 173

10.2.3 文档 174

10.2.4 使用源代码 174

10.3 标准库:一些最爱 175

10.3.1 sys 175

103.2 os 176

10.3.3 fileinput 178

10.3.4 集合、堆和双端队列 180

10.3.5 time 184

10.3.6 random 185

10.3.7 shelve 188

10.3.8 re  191

10.3.9 其他有趣的标准模块 204

10.4 小结  205

10.4.1 本章的新函数 205

10.4.2 接下来学什么 206

第11章 文件和素材 207

11.1 打开文件 207

11.1.1 文件模式 207

11.1.2 缓冲 208

11.2 基本文件方法 209

11.2.1 读和写 209

11.2.2 管式输出 210

11.2.3 读写行 211

11.2.4 关闭文件 211

11.2.5 使用基本文件方法 213

11.3 对文件内容进行迭代 214

11.3.1 按字节处理 214

11.3.2 按行操作 215

11.3.3 读取所有内容 215

11.3.4 使用fileinput实现懒惰行迭代 216

11.3.5 文件迭代器  216

11.4 小结 217

11.4.1 本章的新函数 218

11.4.2 接下来学什么  218

第12章 图形用户界面 219

12.1 丰富的平台 219

12.2 下载和安装 wxPython 220

12.3 创建示例GUI应用程序 221

12.3.1 开始 221

12.3.2 窗口和组件 222

12.3.3 标签、标题和位置 223

12.3.4 更智能的布局 225

12.3.5 事件处理 226

12.3.6 完成了的程序 226

12.4 但是我宁愿用 228

12.4.1 使用 Tkinter 229

12.4.2 使用 Jython 和 Swing 229

12.4.3 使用其他开发包 230

12.5 小结 230

第13章 数据库支持 231

13.1 Python数据库API 232

13.1.1 全局变量 232

13.1.2 异常 233

13.1.3 连接和游标 233

13.1.4 类型 235

13.2 SQLite 和 PySQLite 235

13.2.1 入门 236

13.2.2 数据库应用程序示例 237

13.3 小结 239

13.3.1 本章的新函数 240

13.3.2 接下来学什么 240

第14章 网络编程 241

14.1 少数几个网络设计模块 241

14.1.1 socket模块 242

14.1.2 urllib和urUib2模块 243

14.1.3 其他模块 245

14.2 SocketServer和它的朋友们 246

14.3 多连接 246

14.3.1使用SocketServer进行分叉和线程处理 248

14.3.2 带有select和poll的异步I/O 248

14.4 Twisted 251

14.4.1 下载并安装 Twisted 251

14.4.2 编写 Twisted 服务器 251

14.5 小结 253

14.5.1 本章的新函数 254

14.5.2 接下来学什么 254

第15章 Python和万维网 255

15.1 屏幕抓取 255

15.1.1 Tidy 和 XHTML解析 256

15.1.2 Beautiful Soup 260

15.2 使用CGI创建动态网页 261

15.2.1 第一步:准备网络服务器 261

15.2.2 第二步:加入Pound Bang行 261

15.2.3 第三步:设置文件许可 262

15.2.4 CGI 安全风险 262

15.2.5 简单的CGI脚本 263

15.2.6 使用cgitb调试 263

15.2.7 使用cgi模块 264

15.2.8 简单的表单 265

15.3 更进一步:mod_python 267

15.3.1 安装 mod_python 267

15.3.2 CGI处理程序 269

15.3.3 PSP 270

15.3.4 发布 271

15.4网络应用程序框架 273

15.5 Web服务:正确分析 274

15.5.1 RSS和相关内容 274

15.5.2 使用XML-RPC进行远租过租调用 275

15.5.3 SOAP 275

15.6 小结 276

15.6.1 本章的新函数 276

15.6.2 接下来学什么 276

第16章 测试 277

16.1 先测试,后编码 277

16.1.1 精确的需求说明 278

16.1.2 为改变而计划  279

16.1.3 测试的4步 279

16.2 测试工具 280

16.2.1 doctest 280

16.2.2 unittest 282

16.3 单元测试以外的内容 285

16.3.1 使用 PyChecker 和 PyLint检查源代码 285

16.3.2 分析 288

16.4 小结 289

16.4.1 本章的新函数 290

16.4.2 接下来学什么 290

第17章 扩展Python 291

17.1 考虑哪个更重要 291

17.2 非常简单的途径:Jython和IronPython 292

17.3 编写C语言扩展 294

17.3.1 SWIG 296

17.3.2 自己研究 299

17.4 小结 303

17.4.1 本章的新函数 304

17.4.2 接下来学什么 304

第18章 程序打包 305

18.1 Distutils基础 305

18.2 打包 307

18.2.1 建立存档文件 307

18.2.2 创建Windows安装程序或RPM包 308

18.3 编译扩展 309

18.4 使用py2exe创建可执行程序 310

18.5 小结 311

18.5.1 本章的新函数 311

18.5.2 接下来学什么 311

第19章 好玩的编程 312

19.1 为什么要好玩 312

19.2 程序设计的柔术 312

19.3 原型设计 313

19.4 配置 314

19.4.1提取常量 314

19.4.2 配置文件 315

19.5 日志记录 : 317

19.6 如果还没烦 318

19.7 如果还想学 318

19.8 小结 319

第20章 项目1:即时标记 321

20.1 问题是什么 321

20.2 有用的工具 322

20.3 准备工作 322

20.4 初次实现 323

20.4.1 找出文本块 323

20.4.2 添加一些标记 324

20.5 再次实现 325

20.5.1 处理程序 326

20.5.2 处理程序的超类 326

20.5.3 规则 328

20.5.4 规则的超类 329

20.5.5 过滤器 329

20.5.6 语法分析器 329

20.5.7 构造规则和过滤器 330

20.5.8 整合 333

20.6 进一步探索 337

第21章 项目2:画幅好画 338

21.1 问题 338

21.2 有用的工具 339

21.3 准备工作 339

21.4 初次实现 340

21.4.1 用 ReportLab 画图 340

21.4.2 构造折线 341

21.4.3 编写原型 342

21.5 再次实现 343

21.5.1 获取数据 343

21.5.2 使用 LinePlot 类 344

21.6进一步探索 345

第22章 项目3:万能的XML 346

22.1 问题 346

22.2 有用的工具 347

22.3 准备工作 348

22.4 初次实现  349

22.4.1 创建简单的内容处理程序 349

22.4.2 创建 HTML 页面 351

22.5 再次实现 353

22.5.1 调度程序的混入类 353

22.5.2 实现首部、页脚和默认的处理程序 355

22.5.3 对目录的支持  355

22.5.4 事件处理程序  356

22.6 进一步探索 359

第23章 项目4:新闻聚合 360

23.1 问题 360

23.2 有用的工具 361

23.3 准备工作 361

23.4 初次实现 361

23.5 再次实现 364

23.6 进一步探索 370

第24章 项目5:虚拟茶话会 372

24.1 问题 372

24.2 有用的工具 372

24.3 准备工作 373

24.4 初次实现 374

24.4.1 ChatServer类 374

24.4.2 ChatSession类 375

24.4.3 整合 377

24.5 再次实现 378

24.5.1 基础命令解释 379

24.5.2 房间 379

24.5.3 登录和退出房间 380

24.5.4 主聊天室 380

24.5.5 新的服务器 381

24.6 进一步探索 385

第25章 项目6:使用CGI进行远程编辑 386

25.1 问题 386

25.2 有用的工具 386

25.3 准备工作 387

25.4 初次实现 387

25.5 再次实现 388

25.5.1 创建文件名表单 388

25.5.2 创建编辑器的脚本 389

25.5.3 编写保存脚本 390

25.5.4 运行编辑器 391

25.6 进一步探索 392

第26章 项目7:自定义电子公告板 394

26.1 问题 394

26.2 有用的工具 395

26.3 准备工作 395

26.4 初次实现 396

26.5 再次实现 399

26.5.1 编写 Main 脚本 400

26.5.2 编写 View脚本 401

26.5.3 编写 Edit 脚本 402

26.5.4 编写 Save 脚本 404

26.5.5 尝试使用 405

26.6 进一步探索 406

第27章 项目8:使用XML-RPC进行文件共享 407

27.1 问题 407

27.2 有用的工具 408

27.3 准备工作 408

27.4 初次实现 409

27.4.1 实现一个简单的节点 409

27.4.2 尝试使用首次实现 414

27.5 再次实现 415

27.5.1 创建客户端界面 415

27.5.2 引发异常 416

27.5.3 验证文件名 417

27.5.4 尝试使用再次实现 420

27.6 进一步探索 421

第28章 项目9:文件共享2——GUI版本 422

28.1 问题 422

28.2 有用的工具 422

28.3 准备工作 422

28.4 初次实现 423

28.5 再次实现 425

28.6 进一步探索 428

第29章 项目10: DIY街机游戏 429

29.1 问题 429

29.2 有用的工具 430

29.2.1 pygame  430

29.2.2 pygame.1ocals 430

29.2.3 pygame.display 431

29.2.4 pygame.font 431

29.2.5 pygame.sprite  431

29.2.6 pygame.mouse 432

29.2.7 pygame.event 432

29.2.8 pygame.image 432

29.3 准备工作 432

29.4 初次实现  433

29.5 再次实现 436

29.6 进一步探索 443

附录A 简明版本 444

附录B Python参考手册 451

附录C 在线资源 462

附录D Python 3.0 465

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345