标题：Python核心编程（第2版）
基本信息
作　者：（美）丘恩（Chun，W.J.）著宋吉广译  丛 书 名：出 版 社：人民邮电出版社
ISBN：9787115178503
出版时间：2008-07-01
版　次：1
页　数：654
装　帧：平装
开　本：16开
内容简介
《Python核心编程(第2版)》是经典的Python指导书，在第一版的基础上进行了全面升级。全书分为两个部分：第1部分占据了大约三分之二的篇幅，阐释这门语言的“核心”内容，包括基本的概念和语句、语法和风格、Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式编程、模块、面向对象编程、执行环境等内容：第2部分则提供了各种高级主题来展示可以使用Python做些什么，包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、Web编程、数据库编程、扩展Python和一些其他材料。《Python核心编程(第2版)》适合Python初学者，以及已经入门但想继续学习和提高自身Python技巧的程序员。
编辑推荐
初学Python?这是一本有关Pyttlon开发的权威指南
涵盖近期发布的Pyttlon版本的核心功能特性，而不仅仅是语法
学习更多的高阶内容，如正则表达式、网络、多线程、图形用户界面、Web/CGl和Python扩展等
包括几个全新的章节，关于数据库、网络客户端、Java/Jytt30n和Microsoft Office等
展示数以百计的代码片段、交互实例和大量加强您的Pyttlon技能的实用练习
“对Wesley Chun《Pythorl核心编程》第二版的漫长等待是值得的——它的深邃、它的全面，以及它实用的练习将会帮助读者学会并掌握杰出的Pythorl技能。”
——Alex Martelli，Python om a Nutshell一书作者和Python Cookbook一书编辑
“终于，一本杰出的融教材和参考书于一身的Pytflon书籍诞生了。”
——Michael Baxter，Linux Journal
学习专业的Python风格、最佳实践和好的编程习惯；
加强对Pyttlon对象、内存模型和Pythom面向对象特性的深入理解；
构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件；
学习如何使用Python中的Tkinler和其他工具来开发自己的GUI应用程序及软件：
通过用C等语言编写扩展来提升Pytllon应用程序的性能，或者通过使用多线程增强I/O相关的应用程序的能力；
学习Pyttlon中有关数据库的API，以及如何在Pyttlon中使用各种不同的数据库系统，包括MySQL、Postgres和SQLite。
目录
第1部分　Python核心
第1章　欢迎来到Python世界　3
1　什么是Python　4
2　起源　4
3　特点　4
3.1　高级　4
3.2　面向对象　5
3.3　可升级　5
3.4　可扩展　5
3.5　可移植性　5
3.6　易学　6
3.7　易读　6
3.8　易维护　6
3.9　健壮性　6
3.10　高效的快速原型开发工具　6
3.11　内存管理器　7
1.3.12　解释性和(字节)编译性　71.4　下载和安装Python　71.5　运行Python　81.5.1　命令行上的交互式解释器　91.5.2　从命令行启动脚本　101.5.3　集成开发环境　111.5.4　其他的集成开发环境和执行环境　141.6　Python文档　151.7　比较Python(Python与其他语言的比较)　151.8　其他实现　171.9　练习　18第2章　快速入门　192.1　程序输出，print语句及“Hello World!”　202.2　程序输入和raw_input()内建函数　212.3　注释　222.4　操作符　222.5　变量和赋值　242.6　数字　242.7　字符串　252.8　列表和元组　262.9　字典　262.10　代码块及缩进对齐　272.11　if语句　272.12　while循环　282.13　for循环和range()内建函数　282.14　列表解析　302.15　文件和内建函数open()、file()　302.16　错误和异常　312.17　函数　322.17.1　如何定义函数　322.17.2　如何调用函数　322.17.3　默认参数　332.18　类　332.19　模块　352.19.1　如何导入模块　352.19.2　如何访问一个模块函数或访问一个模块变量　352.20　实用的函数　362.21　练习　36第3章　Python基础　393.1　语句和语法　403.1.1　注释(#)　403.1.2　继续(\)　403.1.3　多个语句构成代码组(:)　413.1.4　代码组由不同的缩进分隔　413.1.5　同一行书写多个语句(;)　413.1.6　模块　413.2　变量赋值　423.2.1　赋值操作符　423.2.2　增量赋值　423.2.3　多重赋值　433.2.4　“多元”赋值　433.3　标识符　443.3.1　合法的Python标识符　443.3.2　关键字　443.3.3　内建　453.3.4　专用下划线标识符　453.4　基本风格指南　453.4.1　模块结构和布局　463.4.2　在主程序中书写测试代码　483.5　内存管理　493.5.1　变量定义　493.5.2　动态类型　493.5.3　内存分配　493.5.4　引用计数　503.5.5　垃圾收集　513.6　第一个Python程序　513.7　相关模块和开发工具　543.8　练习　55第4章　Python对象　564.1　Python 对象　574.2　标准类型　574.3　其他内建类型　584.3.1　类型对象和type类型对象　584.3.2　None--Python的Null对象　584.4　内部类型　594.4.1　代码对象　594.4.2　帧对象　604.4.3　跟踪记录对象　604.4.4　切片对象　604.4.5　省略对象　604.4.6　XRange 对象　604.5　标准类型操作符　614.5.1　对象值的比较　614.5.2　对象身份比较　614.5.3　布尔类型　644.6　标准类型内建函数　644.6.1　type()　644.6.2　cmp()　654.6.3　str()和repr()(及``操作符)　664.6.4　type()和isinstance()　674.6.5　Python类型操作符和内建函数总结　704.7　类型工厂函数　704.8　标准类型的分类　714.8.1　存储模型　714.8.2　更新模型　724.8.3　访问模型　734.9　不支持的类型　744.10　练习　75第5章　数字　765.1　数字简介　775.1.1　如何创建数值对象并用其赋值(数字对象)　775.1.2　如何更新数字对象　775.1.3　如何删除数字对象　775.2　整型　775.2.1　布尔型　785.2.2　标准整型　785.2.3　长整型　785.2.4　整型和长整型的统一　795.3　双精度浮点型　795.4　复数　805.5　操作符　815.5.1　混合模式操作符　815.5.2　标准类型操作符　825.5.3　算术操作符　825.5.4　*位操作符(只适用于整型)　865.6　内建函数与工厂函数　875.6.1　标准类型函数　875.6.2　数字类型函数　875.6.3　仅用于整型的函数　925.7　其他数字类型　935.7.1　布尔“数”　935.7.2　十进制浮点型　945.8　相关模块　955.9　练习　97第6章　序列：字符串、列表和元组　1006.1　序列　1016.1.1　标准类型操作符　1016.1.2　序列类型操作符　1016.1.3　内建函数(BIF)　1066.2　字符串　1076.3　字符串和操作符　1096.3.1　标准类型操作符　1096.3.2　序列操作符切片([]和[:])　1096.4　只适用于字符串的操作符　1146.4.1　格式化操作符(%)　1146.4.2　字符串模板: 更简单的替代品　1176.4.3　原始字符串操作符(r/R)　1186.4.4　Unicode字符串操作符(u/U)　1196.5　内建函数　1196.5.1　标准类型函数　1196.5.2　序列类型函数　1196.5.3　字符串类型函数　1206.6　字符串内建函数　1216.7　字符串的独特特性　1246.7.1　特殊字符串和控制字符　1246.7.2　三引号　1256.7.3　字符串不变性　1266.8　Unicode　1276.8.1　术语　1276.8.2　什么是Unicode　1286.8.3　怎样使用Unicode　1286.8.4　Codec是什么　1296.8.5　编码解码　1296.8.6　把Unicode应用到实际应用中　1306.8.7　从现实中得来的教训　1316.8.8　Python的Unicode支持　1316.9　相关模块　1336.10　字符串关键点总结　1346.11　列表　1346.12　操作符　1366.12.1　标准类型操作符　1366.12.2　序列类型操作符　1366.12.3　列表类型操作符和列表解析　1396.13　内建函数　1396.13.1　标准类型函数　1396.13.2　序列类型函数　1406.13.3　列表类型内建函数　1426.14　列表类型的内建函数　1426.15　列表的特殊特性　1456.16　元组　1516.17　元组操作符和内建函数　1526.17.1　标准类型操作符、序列类型操作符和内建函数　1526.17.2　元组类型操作符和内建函数、内建方法　1536.18　元组的特殊特性　1536.18.1　不可变性给元组带来了什么影响　1536.18.2　元组也不是那么“不可变”　1536.18.3　默认集合类型　1546.18.4　单元素元组　1556.18.5　字典的关键字　1556.19　相关模块　1566.20　*拷贝Python对象、浅拷贝和深拷贝　1566.21　序列类型小结　1586.22　练习　160第7章　映像和集合类型　1637.1　映射类型：字典　1647.1.1　如何创建字典和给字典赋值　1647.1.2　如何访问字典中的值　1657.1.3　如何更新字典　1667.1.4　如何删除字典元素和字典　1677.2　映射类型操作符　1677.2.1　标准类型操作符　1677.2.2　映射类型操作符　1687.3　映射类型的内建函数和工厂函数　1687.3.1　标准类型函数[type()、str()和cmp()]　1687.3.2　映射类型相关的函数　1707.4　映射类型内建方法　1727.5　字典的键　1747.5.1　不允许一个键对应多个值　1747.5.2　键必须是可哈希的　1757.6　集合类型　1787.6.1　如何创建集合类型和给集合赋值　1797.6.2　如何访问集合中的值　1797.6.3　如何更新集合　1797.6.4　如何删除集合中的成员和集合　1807.7　集合类型操作符　1807.7.1　标准类型操作符(所有的集合类型)　1807.7.2　集合类型操作符(所有的集合类型)　1817.7.3　集合类型操作符(仅适用于可变集合)　1827.8　内建函数　1837.8.1　标准类型函数　1837.8.2　集合类型工厂函数　1837.9　集合类型内建方法　1847.9.1　方法(所有的集合方法)　1847.9.2　方法(仅适用于可变集合)　1847.9.3　操作符和内建方法比较　1857.10　集合类型总结表　1857.11　相关模块　1867.12　练习　186第8章　条件和循环　1898.1　if语句　1908.1.1　多重条件表达式　1908.1.2　单一语句的代码块　1908.2　else语句　1908.3　elif(即else-if)语句　1918.4　条件表达式(即“三元操作符”)　1928.5　while语句　1938.5.1　一般语法　1938.5.2　计数循环　1938.5.3　无限循环　1948.6　for语句　1948.6.1　一般语法　1948.6.2　用于序列类型　1958.6.3　用于迭代器类型　1968.6.4　range()内建函数　1968.6.5　xrange() 内建函数　1988.6.6　与序列相关的内建函数　1988.7　break语句　1998.8　continue语句　1998.9　pass语句　2008.10　再谈else语句　2008.11　迭代器和iter()函数　2028.11.1　什么是迭代器　2028.11.2　为什么要迭代器　2028.11.3　如何迭代　2028.11.4　使用迭代器　2038.11.5　可变对象和迭代器　2048.11.6　如何创建迭代器　2048.12　列表解析　2058.13　生成器表达式　2068.14　相关模块　2098.15　练习　209第9章　文件和输入输出　2129.1　文件对象　2139.2　文件内建函数(open()和file())　2139.2.1　工厂函数file()　2149.2.2　通用换行符支持(UNS)　2149.3　文件内建方法　2159.3.1　输入　2159.3.2　输出　2159.3.3　文件内移动　2169.3.4　文件迭代　2169.3.5　其他　2169.3.6　文件方法杂项　2179.4　文件内建属性　2199.5　标准文件　2209.6　命令行参数　2209.7　文件系统　2219.8　文件执行　2279.9　永久存储模块　2279.9.1　pickle和marshal模块　2279.9.2　DBM风格的模块　2289.9.3　shelve模块　2289.10　相关模块　2299.11　练习　230第10章　错误和异常　23410.1　什么是异常　23510.1.1　错误　23510.1.2　异常　23510.2　Python 中的异常　23610.3　检测和处理异常　23710.3.1　try-except语句　23810.3.2　包装内建函数　23810.3.3　带有多个except的try语句　24010.3.4　处理多个异常的except语句　24110.3.5　捕获所有异常　24210.3.6　“异常参数”　24410.3.7　在应用使用我们封装的函数　24510.3.8　else子句　24710.3.9　finally子句　24810.3.10　try-finally语句　24810.3.11　try-except-else-finally：厨房一锅端　25010.4　上下文管理　25110.4.1　with语句　25110.4.2　*上下文管理协议　25210.5　*字符串作为异常　25210.6　触发异常　25310.7　断言　25410.8　标准异常　25510.9　*创建异常　25710.10　(现在)为什么用异常　26210.11　到底为什么要异常　26310.12　异常和sys模块　26310.13　相关模块　26410.14　练习　264第11章　函数和函数式编程　26611.1　什么是函数？　26711.1.1　函数vs过程　26711.1.2　返回值与函数类型　26711.2　调用函数　26811.2.1　函数操作符　26811.2.2　关键字参数　26911.2.3　默认参数　26911.2.4　参数组　26911.3　创建函数　27211.3.1　def语句　27211.3.2　声明与定义比较　27211.3.3　前向引用　27211.3.4　函数属性　27311.3.5　内部/内嵌函数　27411.3.6　*函数(与方法)装饰器　27511.4　传递函数　27811.5　Formal Arguments　27911.5.1　位置参数　27911.5.2　默认参数　27911.6　可变长度的参数　28211.6.1　非关键字可变长参数(元组)　28211.6.2　关键字变量参数(字典)　28311.6.3　调用带有可变长参数对象函数　28411.7　函数式编程　28611.7.1　匿名函数与lambda　28611.7.2　内建函数apply()、filter()、map()、reduce()　28811.7.3　偏函数应用　29311.8　变量作用域　29511.8.1　全局变量与局部变量　29511.8.2　globa语句　29611.8.3　作用域的数字　29711.8.4　闭包　29811.8.5　作用域和lambda　30211.8.6　变量作用域和名称空间　30411.9　*递归　30411.10　生成器　30511.10.1　简单的生成器特性　30511.10.2　加强的生成器特性　30711.11　练习　308第12章　模块　31012.1　什么是模块　31112.2　模块和文件　31112.2.1　模块名称空间　31112.2.2　搜索路径和路径搜索　31112.3　名称空间　31212.3.1　名称空间与变量作用域比较　31312.3.2　名称查找、确定作用域、覆盖　31412.3.3　无限制的名称空间　31412.4　导入模块　31512.4.1　import语句　31512.4.2　from-import语句　31512.4.3　多行导入　31612.4.4　扩展的import语句(as)　31612.5　模块导入的特性　31612.5.1　载入时执行模块　31612.5.2　导入(import)和加载(load)　31712.5.3　导入到当前名称空间的名称　31712.5.4　被导入到导入者作用域的名字　31712.5.5　关于__future__　31812.5.6　警告框架　31812.5.7　从ZIP文件中导入模块　31912.5.8　“新的”导入钩子　31912.6　模块内建函数　31912.6.1　__import__()　31912.6.2　globals()和locals()　32012.6.3　reload()　32012.7　包　32112.7.1　目录结构　32112.7.2　使用from-import导入包　32212.8　模块的其他特性　32312.8.1　自动载入的模块　32312.8.2　阻止属性导入　32312.8.3　不区分大小的导入　32312.8.4　源代码编码　32412.8.5　导入循环　32412.8.6　模块执行　32512.9　相关模块　32512.10　练习　326第13章　面向对象编程　32713.1　引言　32813.2　面向对象编程　33313.2.1　面向对象设计与面向对象编程的关系　33313.2.2　现实中的问题　33413.2.3　*常用术语　33413.3　类　33513.3.1　创建类　33613.3.2　声明与定义　33613.4　类属性　33613.4.1　类的数据属性　33713.4.2　Methods　33713.4.3　决定类的属性　33813.4.4　特殊的类属性　33913.5　实例　34013.5.1　初始化：通过调用类对象来创建实例　34013.5.2　__init__()“构造器”方法　341