《Python学习手册》(Learning Python,third edition)第3版[PDF]
电驴资源
| 用户共享的电驴资源列表 | |
|---|---|
| Python学习手册(第3版).pdf | 40.72 MB |
| 40.72 MB | |
电驴资源简介
| 资源介绍 |
| 语言: 简体中文 |
| 地区: 大陆 |
| 图书fenlei: 软件 |
| 中文名: Python学习手册 |
| 发行时间: 2009年8月 |
| 原名: Learning Python,third edition |
| 资源格式: PDF |
| 版本: 第3版 |
|
简介: 本书是学习Python编程语言的入门书籍。Python是一种很流行的程序语言,可以作为独立的程序和脚本在各种领域中应用。Python免费、可移植、功能强大,而且使用起来相当容易。 无论你是编程初学者,还是专业开发人员,本书的目标是让你快速掌握核心Python语言基础。阅读本书后,会对Python有足够的了解,能够将其应用于你所要从事的应用领域中。 |
|
目录: 目录 前言.................... 1 第一部分使用入门 第1章问答环节. 19 人们为何使用Python .19 软件质量............20 开发者效率.........21 Python 是"脚本语言"吗..........................21 好吧,Python 的缺点是什么呢..................23 如今谁在使用Python .23 使用Python 可以做些什么..........................24 系统编程............25 用户图形接口.....25 Internet 脚本........25 组件集成............26 数据库编程.........26 快速原型............27 数值计算和科学计算编程..................27 游戏、图像、人工智能、XML 、机器人等...............27 Python 有哪些技术上的优点......................27 面向对象............28 免费....................28 可移植................28 功能强大............29 可混合................30 使用简单............31 Python 是工程,不是艺术..................31 简单易学............33 名字来源于Monty Python...................33 Python 和其他语言比较起来怎么样...........33 本章小结...................34 头脑风暴...................35 本章习题............35 习题解答............35 第2章Python 如何运行程序........ 37 Python 解释器简介.....37 程序执行...................39 程序员的视角.....39 Python 的视角.....40 执行模块的变种........42 Python 实现的替代者..........................42 执行优化工具.....44 冻结二进制文件.45 未来的可能性.....46 本章小结...................47 头脑风暴...................48 本章习题............48 习题解答............48 第3章如何运行程序................... 49 交互模式下编写代码.49 在交互提示模式下测试代码..............51 使用交互提示模式.............................52 系统命令行和文件.....52 使用命令行和文件.............................55 UNIX 可执行脚本(#!) .........................56 UNIX env 查找技巧............................57 点击文件图标............57 在Windows 中点击图标......................58 raw_input 的技巧58 图标点击的其他限制..........................60 模块导入和重载........61 模块的显要特性:属性......................62 import 和reload 的使用注意事项.........65 IDLE 用户界面...........66 IDLE 基础...........66 使用IDLE ...........68 高级IDLE 工具....70 其他的IDE.................70 嵌入式调用................71 动付二进制的可执行性.............................72 文本编辑器启动的选择.............................72 其他的启动选择........73 未来的可能................73 我应该选用哪种........73 本章小结...................74 头脑风暴...................75 本章习题............75 习题解答............75 头脑风暴:第一部分练习题.....................77 第二部fenlei型和运算第4章介绍Python 对象类型........ 81 为什么使用内置类型.82 Python 的核心数据类型......................82 数字..84 字符串.......................85 序列的操作.........85 不可变性............87 类型特定的方法.88 寻求帮助............89 编写字符串的其他方法......................90 模式匹配............91 列表....................91 序列操作............92 类型特定的操作.92 边界检查............93 嵌套....................93 列表解析............94 字典...95 映射操作............95 重访嵌套............96 键的排序:for 循环..........................97 迭代和优化.........99 不存在的键:if 测试........................100 元组.101 为什么要用元组...............................101 文件.101 其他文件类工具...............................102 其他核心类型..........103 如何破坏代码的灵活性....................104 用户定义的类...104 剩余的内容.......105 本章小结.................106 头脑风暴....... 107 本章习题..........107 习题解答..........107 第5章数字...... 109 Python 的数字类型...109 数字常量..........109 内置数学工具和扩展........................ 111 Python 表达式操作符............................... 112 混合操作所遵循的操作符优先级..... 113 括号分组的子表达式........................ 113 混合类型自动升级........................... 114 预习:运算符重载........................... 115 在实际应用中的数字............................... 115 变量和基本的表达式........................ 115 数字显示的格式............................... 117 str 和repr 显示格式............................ 118 除法: 传统除法、Floor 除法和真除法.................... 118 位操作.............. 119 长整型数..........120 复数..................121 十六进制和八进制记数....................121 其他的内置数学工具........................122 其他数字类型..........123 小数数字..........124 集合.................125 布尔型..............126 第三方扩展.......127 本章小结.................127 头脑风暴....... 128 本章习题..........128 习题解答..........128 第6章动态类型简介................. 129 缺少类型声明语句的情况.......................129 变量、对象和引用...........................129 类型属于对象,而不是变量............131 对象的垃圾收集...............................132 共享引用.................133 共享引用和在原处修改....................135 共享引用和相等...............................136 动态类型随处可见...138 本章小结.................138 头脑风暴....... 139 本章习题..........139 习题解答..........139 第7章字符串... 140 字符串常量..............141 单双引号字符串是一样的................142 用转义序列代表特殊字节................142 字符串抑制转义...............................145 三重引号编写多行字符串块............146 字符串编码更大的字符集................147 实际应用中的字符串...............................149 基本操作..........149 索引和分片.......151 为什么要在意:分片........................154 字符串转换工具...............................154 修改字符串.......157 字符串格式化..........158 更高级的字符串格式化....................159 基于字典的字符串格式化................160 字符串方法..............161 字符串方法实例:修改字符串.........162 字符串方法实例:文本解析............164 实际应用中的其他常见字符串方法.165 最初的字符串模块..........................166 通常意义下的类型fenlei...........................168 同样fenlei的类型共享其操作集合.....168 可变类型能够在原处修改................168 本章小结.................169 头脑风暴....... 170 本章习题..........170 习题解答..........170 第8章列表与字典.................... 171 列表.171 实际应用中的列表...174 基本列表操作...174 索引、分片和矩阵...........................174 原处修改列表...175 字典.179 实际应用中的字典...181 字典的基本操作...............................181 原处修改字典...182 其他字典方法...183 语言表..............184 字典用法注意事项...........................185 为什么要在意字典接口....................189 本章小结.................189 头脑风暴....... 190 本章习题..........190 习题解答..........190 第9章元组、文件及其他.......... 191 元组.191 实际应用中的元组...........................192 为什么有了列表还要元组................194 文件.195 打开文件..........195 使用文件..........196 实际应用中的文件...........................197 其他文件工具...201 重访类型fenlei..........201 为什么要在意操作符重载................202 对象灵活性..............202 引用VS 拷贝...........204 比较、相等性和真值...............................206 Python 中真和假的含义....................207 Python 的类型层次...209 Python 中的其他类型...............................210 内置类型陷阱..........210 赋值生成引用,而不是拷贝............210 重复能够增加层次深度.................... 211 留意循环数据结构...........................212 不可变类型不可以在原处改变.........212 本章小结.................213 头脑风暴....... 214 本章习题..........214 习题解答..........214 头脑风暴:第二部分练习题....................215 第三部分语句和语法 第10 章Python 语句简介........... 221 重访Python 程序结构...............................221 Python 的语句...222 两个if 的故事...........223 Python 增加了什么............................224 Python 删除了什么............................224 终止行就是终止语句........................225 为什么使用缩进语法........................226 几个特殊实例...228 简短实例:交互循环...............................230 一个简单的交互式循环....................230 对用户输入数据做数学运算............231 用测试输入数据来处理错误............232 用try 语句处理错误...........................233 嵌套代码三层...234 本章小结.................235 头脑风暴....... 236 本章习题..........236 习题解答..........236 第11 章赋值、表达式和打印.... 237 赋值语句.................237 赋值语句的形式...............................238 序列赋值..........239 多目标赋值语句...............................242 增强赋值语句...243 变量命名规则...245 表达式语句..............248 表达式语句和在原处的修改............249 打印语句.................249 Python 的"Hello World "程序.........250 重定向输出流...251 print >> file 扩展...............................252 本章小结.................253 头脑风暴....... 255 本章习题..........255 习题解答..........255 第12 章if 测试.. 256 if 语句.......................256 通用格式..........256 基本例子..........257 多路分支..........257 Python 语法规则.......259 代码块分隔符...260 语句的分隔符...261 一些特殊情况...262 真值测试.................262 if/else 三元表达式.............................264 为什么要在意布尔值........................266 本章小结.................267 头脑风暴....... 268 本章习题..........268 习题解答..........268 第13 章while 和for 循环............. 269 while 循环................269 一般格式..........269 例子..................270 break 、continue 、pass 和循环else ...........271 一般循环格式...271 例子..................271 为什么要在意"模拟C 语言的while 循环".............275 for 循环....................275 一般格式..........276 例子..................276 为什么要在意"文件扫描"............279 迭代器:初探..........280 文件迭代器.......281 其他内置类型迭代器........................283 其他迭代环境...284 用户定义的迭代器...........................285 编写循环的技巧......285 循环计数器:while 和range ..............286 非完备遍历:range ..........................287 修改列表:range ..............................288 并行遍历:zip 和map........................289 产生偏移和元素:enumerate ...........291 列表解析:初探......292 列表解析基础...293 对文件使用列表解析........................294 扩展列表解析语法...........................295 本章小结.................296 头脑风暴....... 297 本章习题..........297 习题解答..........297 第14 章文档.... 299 Python 文档资源.......299 #注释................300 dir 函数.............300 文档字符串:__doc__ ... 301 PyDoc:help 函数.............................304 PyDoc:HTML 报表.........................306 标准手册集.......309 网络资源..........310 已出版的书籍... 311 常见编写代码的陷阱............................... 311 本章小结.................313 头脑风暴....... 314 本章习题..........314 习题解答..........314 头脑风暴:第三部分练习题....................315 第四部分函数 第15 章函数基础..................... 319 为何使用函数..........320 编写函数.................320 def 语句.............322 def 语句是实时执行的......................322 第一个例子:定义和调用.......................323 定义..................323 调用..................324 Python 中的多态...............................324 第二个例子:寻找序列的交集................325 定义..................326 调用..................326 重访多态..........327 本地变量..........328 本章小结.................328 头脑风暴....... 329 本章习题..........329 习题解答..........329 第16 章作用域和参数............... 330 作用域法则..............330 函数作用域基础...............................331 变量名解析:LEGB 原则.................332 作用域实例.......334 内置作用域.......334 global 语句........336 最小化全局变量...............................337 最小化文件间的修改........................338 其他访问全局变量的方法................339 作用域和嵌套函数...340 嵌套作用域的细节...........................341 嵌套作用域举例...............................341 传递参数.................347 参数和共享引用...............................348 避免可变参数的修改........................349 对参数输出进行模拟........................350 特定的参数匹配模型...............................351 关键字参数和默认参数的实例.........352 任意参数的实例...............................354 关键字参数和默认参数的混合.........356 min 调用............357 一个更有用的例子:通用set 函数....359 参数匹配:细节...............................360 为什么要在意:关键字参数............361 本章小结.................362 头脑风暴....... 363 本章习题..........363 习题解答..........364 第17 章函数的高级话题........... 365 匿名函数:lambda..365 lambda 表达式...365 为什么使用lambda ...........................367 如何(不要)让Python 代码变得晦涩难懂..............368 嵌套lambda 和作用域........................369 作为参数来应用函数...............................370 内置函数apply..370 为什么要在意:回调........................371 传入关键字参数...............................372 和apply 类似的调用语法...................372 在序列中映射函数:map ........................373 函数式编程工具:filter 和reduce ............374 重访列表解析:映射...............................376 列表解析基础...376 增加测试和嵌套循环........................377 列表解析和矩阵...............................380 理解列表解析...381 为什么要在意:列表解析和map ......382 重访迭代器:生成器...............................383 生成器函数实例...............................383 扩展生成器函数协议:send 和next...385 迭代器和内置类型...........................386 生成器表达式:迭代器遇到列表解析......................387 对迭代的各种方法进行计时....................388 函数设计概念..........390 函数是对象:简洁调用....................392 函数陷阱.................393 本地变量是静态检测的....................393 默认和可变对象...............................395 没有return 语句的函数......................396 嵌套作用域的循环变量....................397 本章小结.................397 头脑风暴....... 398 本章习题..........398 习题解答..........398 头脑风暴:第四部分练习题...................400 第五部分模块 第18 章模块:宏伟蓝图........... 405 为什么使用模块......405 Python 程序构架.......406 如何组织一个程序...........................407 导入和属性.......407 标准库模块.......409 import 如何工作.......409 搜索..................410 编译(可选)...414 运行..................414 第三方工具:distutils ......................415 本章小结.................415 头脑风暴....... 417 本章习题..........417 习题解答..........417 第19 章模块代码编写基础........ 418 模块的创建..............418 模块的使用..............419 import 语句.......419 from 语句..........420 from * 语句......420 导入只发生一次...............................420 import 和from 是赋值语句.................421 文件间变量名的改变........................422 import 和from 的对等性.....................422 from 语句潜在的陷阱........................423 模块命名空间..........425 文件生成命名空间...........................425 属性名的点号运算...........................427 导入和作用域...427 命名空间的嵌套...............................428 重载模块.................429 reload 基础........430 reload 实例........431 为什么要在意:模块重载................432 本章小结.................432 头脑风暴....... 434 本章习题..........434 习题解答..........434 第20 章模块包. 435 包导入基础..............435 包和搜索路径设置...........................436 __init__.py 包文件...........................436 包导入实例..............438 包对应的from 和import.....................439 为什么要使用包导入...............................440 三个系统的传说...............................441 为什么要在意:模块包....................443 本章小结.................443 头脑风暴....... 445 本章习题..........445 习题解答..........445 第21 章高级模块话题............... 446 在模块中隐藏数据...446 最小化from * 的破坏:_X 和__all__........... 446 启用以后的语言特性...............................447 混合用法模式:__name__ 和__main__ ............ 447 以__name__ 进行单元测试..............448 修改模块搜索路径...450 import as 扩展..........451 相对导入语法..........451 为什么使用相对导入........................452 模块设计理念..........454 模块是对象:元程序........................455 模块陷阱.................457 顶层代码的语句次序的重要性.........457 通过变量名字符串导入模块............458 from 复制变量名,而不是连接.........459 from * 会让变量语义模糊.................460 reload 不会影响from 导入..................460 reload 、from 以及交互模式测试.......461 reload 的使用没有传递性..................462 递归形式的from import 无法工作.....463 本章小结.................464 头脑风暴....... 465 本章习题..........465 习题解答..........465 头脑风暴:第五部分练习题....................466 第六部fenlei和OOP 第22 章OOP :宏伟蓝图.......... 471 为何使用类..............472 概览OOP..................473 属性继承搜索...473 类和实例..........475 类方法调用.......476 编写类树..........476 OOP 是为了代码重用........................479 本章小结.................481 头脑风暴....... 483 本章习题..........483 习题解答..........483 第23 章类代码编写基础........... 485 类产生多个实例对象...............................485 类对象提供默认行为........................486 实例对象是具体的元素....................486 第一个例子.......486 类通过继承进行定制...............................489 第二个例子.......489 类是模块内的属性...........................491 类可以截获Python 运算符........................492 第三个例子.......493 为什么要使用运算符重载................494 世界上最简单的Python 类........................495 本章小结.................497 头脑风暴....... 499 本章习题..........499 习题解答..........499 第24 章类代码编写细节........... 501 class 语句.................501 一般形式..........501 例子..................502 方法.504 例子..................505 调用超类的构造器...........................506 其他方法调用的可能性....................506 继承..................507 属性树的构造...507 继承方法的专有化...........................508 类接口技术.......509 抽象超类..........510 运算符重载.............. 511 常见的运算符重载方法....................512 __getitem__ 拦截索引运算...............513 __getitem__ 和__iter__ 实现迭代....513 用户定义的迭代器...........................514 __getattr__ 和__setattr__ 捕捉属性的引用..............518 模拟实例属性的私有性....................520 __repr__ 和__str__ 会返回字符串表达形式.............520 __radd__ 处理右侧加法...................522 __call__ 拦截调用............................523 函数接口和回调代码........................523 __del__ 是析构器.............................525 命名空间:完整的内容...........................526 简单变量名:如果赋值就不是全局变量..................526 属性名称:对象命名空间................527 Python 命名空间的"禅":赋值将变量名fenlei.......527 命名空间字典...529 命名空间链接...531 一个更实际的例子...533 本章小结.................536 头脑风暴....... 537 本章习题..........537 习题解答..........537 第25 章类的设计..................... 539 Python 和OOP ..........539 通过调用标记进行重载(或不要).540 类作为记录..............540 类和继承:"是一个"关系....................542 类和组合:"有一个"关系....................544 重访流处理器...545 为什么要在意:类和持续性............548 OOP 和委托..............548 多重继承.................549 类是对象:通用对象的工厂....................552 为什么有工厂...554 方法是对象:绑定或无绑定....................554 重访文档字符串......556 为什么要在意:绑定方法和回调函数......................557 类和模块.................558 本章小结.................558 头脑风暴....... 559 本章习题..........559 习题解答..........559 第26 章类的高级主题............... 560 扩展内置类型..........560 通过嵌入扩展类型...........................560 通过子类扩展类型...........................561 类的伪私有属性......563 变量名压缩概览...............................564 为什么使用伪私有属性....................564 新式类.....................566 钻石继承变动...567 其他新式类的扩展...........................570 静态和类方法..........573 使用静态和类方法...........................575 函数装饰器..............576 装饰器例子.......578 类陷阱.....................579 修改类属性的副作用........................579 多重继承:顺序很重要....................580 类、方法以及嵌套作用域................581 "过度包装"...583 本章小结.................584 头脑风暴....... 585 本章习题..........585 习题解答..........585 头脑风暴:第六部分练习题...................586 第七部分异常和工具 第27 章异常基础..................... 595 为什么使用异常......596 异常的角色.......596 异常处理:简明扼要...............................597 try/except/else 语句..601 try 语句分句......602 try/else 分句......604 例子:默认行为...............................605 例子:捕捉内置异常........................606 try/finally 语句.........607 例子:利用try/finally 编写终止行为.608 统一try/except/finally ..............................609 通过嵌套合并finally 和except...........610 合并try 的例子.. 611 raise 语句..................612 例子:引发并捕捉用户定义的异常.613 例子:利用raise 传入额外的数据.....613 例子:利用raise 传递异常................614 assert 语句................614 例子:收集约束条件(但不是错误)......................615 with/as 环境管理器...616 基本使用..........616 环境管理协议...617 为什么要在意:错误检查................618 本章小结.................620 头脑风暴....... 621 本章习题..........621 习题解答..........621 第28 章异常对象..................... 622 基于字符串的异常...623 字符串异常就要出局了....................623 基于类的异常..........624 类异常例子.......624 为什么使用类异常...........................626 内置Exception 类..............................629 定义异常文本...630 发送额外数据和实例行为................631 raise 语句的一般形式...............................633 本章小结.................634 头脑风暴....... 636 本章习题..........636 习题解答..........636 第29 章异常的设计.................. 637 嵌套异常处理器......637 例子:控制流程嵌套........................638 例子:语法嵌套化...........................639 异常的习惯用法......641 异常不总是错误...............................641 函数信号条件和raise........................641 在try 外进行调试..............................642 运行进程中的测试...........................643 关于sys.exc_info ..............................644 与异常有关的技巧...644 应该包装什么...644 捕捉太多:避免空except 语句..........645 捕捉过少:使用基于类的fenlei.........647 异常陷阱.................647 字符串异常匹配是通过同一性而不是通过值..........648 捕捉到错误的异常...........................649 核心语言总结..........649 Python 工具集...650 大型项目的开发工具........................651 本章小结.................653 头脑风暴....... 655 本章习题..........655 习题解答..........655 头脑风暴:第七部分练习题...................656 第八部分附录 附录A 安装和配置 附录B 每部分练习题解答 |
