Python基础教程 第3版
¥99.00定价
作者: [挪]芒努斯·利·海特兰德(Magnus Lie Hetland)
出版时间:2018-02
出版社:人民邮电出版社
- 人民邮电出版社
- 9787115474889
- 233049
- 69195213-9
- 2018-02
- 458
- 软件开发
- 本科
内容简介
《Python基础教程 第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地介绍了一些相对高-级的主题,包括抽象、异常、魔法方法、属性、迭代器;此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识;作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10个具有实际意义的Python项目的开发过程。 本书内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考。
目录
第 1章 快速上手:基础知识11.1 交互式解释器11.2 算法是什么21.3 数和表达式31.4 变量51.5 语句51.6 获取用户输入71.7 函数81.8 模块81.8.1 cmath和复数91.8.2 回到未来101.9 保存并执行程序101.9.1 从命令提示符运行Python脚本121.9.2 让脚本像普通程序一样121.9.3 注释131.10 字符串131.10.1 单引号字符串以及对引号转义141.10.2 拼接字符串151.10.3 字符串表示str和repr151.10.4 长字符串、原始字符串和字节161.11 小结211.11.1 本章介绍的新函数211.11.2 预告22第 2章 列表和元组232.1 序列概述232.2 通用的序列操作242.2.1 索引242.2.2 切片262.2.3 序列相加282.2.4 乘法282.2.5 成员资格292.3 列表:Python的主力312.3.1 函数list312.3.2 基本的列表操作312.3.3 列表方法332.4 元组:不可修改的序列382.5 小结392.5.1 本章介绍的新函数402.5.2 预告40第3章 使用字符串413.1 字符串基本操作413.2 设置字符串的格式:精简版413.3 设置字符串的格式:完整版433.3.1 替换字段名433.3.2 基本转换443.3.3 宽度、精度和千位分隔符453.3.4 符号、对齐和用0填充463.4 字符串方法483.4.1 center483.4.2 find483.4.3 join493.4.4 lower503.4.5 replace513.4.6 split513.4.7 strip513.4.8 translate523.4.9 判断字符串是否满足特定的条件523.5 小结533.5.1 本章介绍的新函数533.5.2 预告53第4章 当索引行不通时544.1 字典的用途544.2 创建和使用字典554.2.1 函数dict554.2.2 基本的字典操作554.2.3 将字符串格式设置功能用于字典574.2.4 字典方法584.3 小结634.3.1 本章介绍的新函数634.3.2 预告63第5章 条件、循环及其他语句645.1 再谈print和import645.1.1 打印多个参数645.1.2 导入时重命名655.2 赋值魔法665.2.1 序列解包665.2.2 链式赋值675.2.3 增强赋值675.3 代码块:缩进的乐趣685.4 条件和条件语句695.4.1 这正是布尔值的用武之地695.4.2 有条件地执行和if语句705.4.3 else子句705.4.4 elif子句715.4.5 代码块嵌套715.4.6 更复杂的条件715.4.7 断言755.5 循环765.5.1 while循环775.5.2 for循环775.5.3 迭代字典785.5.4 一些迭代工具785.5.5 跳出循环805.5.6 循环中的else子句825.6 简单推导835.7 三人行845.7.1 什么都不做845.7.2 使用del删除855.7.3 使用exec和eval执行字符串及计算其结果865.8 小结885.8.1 本章介绍的新函数895.8.2 预告89第6章 抽象906.1 懒惰是一种美德906.2 抽象和结构916.3 自定义函数916.3.1 给函数编写文档926.3.2 其实并不是函数的函数936.4 参数魔法936.4.1 值从哪里来946.4.2 我能修改参数吗946.4.3 关键字参数和默认值986.4.4 收集参数1006.4.5 分配参数1026.4.6 练习使用参数1036.5 作用域1056.6 递归1076.6.1 两个经典案例:阶乘和幂1086.6.2 另一个经典案例:二分查找1096.7 小结1126.7.1 本章介绍的新函数1136.7.2 预告113第7章 再谈抽象1147.1 对象魔法1147.1.1 多态1157.1.2 多态和方法1167.1.3 封装1187.1.4 继承1197.2 类1197.2.1 类到底是什么1197.2.2 创建自定义类1207.2.3 属性、函数和方法1217.2.4 再谈隐藏1227.2.5 类的命名空间1237.2.6 特定超类1247.2.7 深入探讨继承1257.2.8 多个超类1267.2.9 接口和内省1277.2.10 抽象基类1287.3 关于面向对象设计的一些思考1307.4 小结1307.4.1 本章介绍的新函数1317.4.2 预告131第8章 异常1328.1 异常是什么1328.2 让事情沿你特定的轨道出错1328.2.1 raise语句1328.2.2 自定义的异常类1338.3 捕获异常1348.3.1 不用提供参数1348.3.2 多个except子句1368.3.3 一箭双雕1368.3.4 捕获对象1378.3.5 一网打尽1378.3.6 万事大吉时1388.4 异常和函数1408.5 异常之禅1408.6 不那么异常的情况1428.7 小结1438.7.1 本章介绍的新函数1438.7.2 预告143第9章 魔法方法、特性和迭代器1449.1 如果你使用的不是Python 31449.2 构造函数1459.2.1 重写普通方法和特殊的构造函数1469.2.2 调用未关联的超类构造函数1479.2.3 使用函数super1489.3 元素访问1499.3.1 基本的序列和映射协议1509.3.2 从list、dict和str派生1529.4 其他魔法方法1539.5 特性1539.5.1 函数property1549.5.2 静态方法和类方法1559.5.3 __getattr__、__setattr__等方法1569.6 迭代器1579.6.1 迭代器协议1579.6.2 从迭代器创建序列1599.7 生成器1599.7.1 创建生成器1599.7.2 递归式生成器1619.7.3 通用生成器1629.7.4 生成器的方法1629.7.5 模拟生成器1639.8 八皇后问题1649.8.1 生成器的回溯1649.8.2 问题1659.8.3 状态表示1669.8.4 检测冲突1669.8.5 基线条件1669.8.6 递归条件1679.8.7 扫尾工作1699.9 小结1709.9.1 本章介绍的新函数1709.9.2 预告171第 10章 开箱即用17210.1 模块17210.1.1 模块是程序17210.1.2 模块是用来下定义的17410.1.3 让模块可用17610.1.4 包17710.2 探索模块17810.2.1 模块包含什么17810.2.2 使用help获取帮助17910.2.3 文档18010.2.4 使用源代码18110.3 标准库:一些深受欢迎的模块18110.3.1 sys18110.3.2 os18310.3.3 fileinput18510.3.4 集合、堆和双端队列18610.3.5 time19010.3.6 random19210.3.7 shelve和json19510.3.8 re19810.3.9 其他有趣的标准模块21010.4 小结21110.4.1 本章介绍的新函数21210.4.2 预告212第 11章 文件21311.1 打开文件21311.2 文件的基本方法21411.2.1 读取和写入21511.2.2 使用管道重定向输出21511.2.3 读取和写入行21711.2.4 关闭文件21711.2.5 使用文件的基本方法21811.3 迭代文件内容22011.3.1 每次一个字符(或字节)22011.3.2 每次一行22111.3.3 读取所有内容22111.3.4 使用fileinput实现延迟行迭代22111.3.5 文件迭代器22211.4 小结22311.4.1 本章介绍的新函数22311.4.2 预告224第 12章 图形用户界面22512.1 创建GUI示例应用程序22512.1.1 初探22612.1.2 布局22712.1.3 事件处理22812.2 使用其他GUI工具包23012.3 小结231第 13章 数据库支持23213.1 Python数据库API23213.1.1 全局变量23313.1.2 异常23413.1.3 连接和游标23413.1.4 类型23613.2 SQLite和PySQLite23613.2.1 起步23713.2.2 数据库应用程序示例23813.3 小结24113.3.1 本章介绍的新函数24113.3.2 预告241第 14章 网络编程24214.1 几个网络模块24214.1.1 模块socket24214.1.2 模块urllib和urllib224414.1.3 其他模块24614.2 SocketServer及相关的类24714.3 多个连接24714.3.1 使用SocketServer实现分叉和线程化24914.3.2 使用select和poll实现异步I O24914.4 Twisted25214.4.1 下载并安装Twisted25214.4.2 编写Twisted服务器25314.5 小结25414.5.1 本章介绍的新函数25514.5.2 预告255第 15章 Python和Web25615.1 屏幕抓取25615.1.1 Tidy和XHTML解析25715.1.2 Beautiful Soup26115.2 使用CGI创建动态网页26215.2.1 第 一步:准备Web服务器26215.2.2 第 二步:添加!#行26315.2.3 第三步:设置文件权限26415.2.4 CGI安全风险26415.2.5 简单的CGI脚本26415.2.6 使用cgitb进行调试26515.2.7 使用模块cgi26615.2.8 简单的表单26715.3 使用Web框架26915.4 Web服务:更高-级的抓取27015.4.1 RSS和相关内容27015.4.2 使用XML-RPC进行远程过程调用27115.4.3 SOAP27215.5 小结27215.5.1 本章介绍的新函数27215.5.2 预告272第 16章 测试基础27316.1 先测试再编码27316.1.1 准确的需求说明27316.1.2 做好应对变化的准备27516.1.3 测试四步曲27516.2 测试工具27616.2.1 doctest27616.2.2 unittest27816.3 超越单元测试28016.3.1 使用PyChecker和PyLint检查源代码28016.3.2 性能分析28316.4 小结28416.4.1 本章介绍的新函数28516.4.2 预告285第 17章 扩展Python28617.1 鱼和熊掌兼得28617.2 简单易行的方式:Jython和IronPython28717.3 编写C语言扩展28917.3.1 SWIG29117.3.2 手工编写扩展29417.4 小结29817.4.1 本章介绍的新函数29917.4.2 预告299第 18章 程序打包30018.1 Setuptools基础30018.2 打包30218.3 编译扩展30318.4 使用py2exe创建可执行程序30418.5 小结30418.5.1 本章介绍的新函数30518.5.2 预告305第 19章 趣味编程30619.1 为何要有趣30619.2 编程柔术30619.3 原型设计30719.4 配置30819.4.1 提取常量30819.4.2 配置文件30919.5 日志31119.6 如果你已不胜其烦31219.7 如果你想深入学习31219.8 小结313第 20章 项目1:自动添加标签31520.1 问题描述31520.2 有用的工具31620.3 准备工作31620.4 初次实现31720.4.1 找出文本块31720.4.2 添加一些标记31820.5 再次实现31920.5.1 处理程序32020.5.2 处理程序的超类32020.5.3 规则32220.5.4 规则的超类32320.5.5 过滤器32320.5.6 解析器32320.5.7 创建规则和过滤器32420.5.8 整合起来32720.6 进一步探索331第 21章 项目2:绘制图表33221.1 问题描述33221.2 有用的工具33221.3 准备工作33321.4 初次实现33321.4.1 使用ReportLab绘图33421.4.2 绘制折线33521.4.3 编写原型33521.5 再次实现33721.5.1 获取数据33721.5.2 使用LinePlot类33721.6 进一步探索339第 22章 项目3:万-能的XML34022.1 问题描述34022.2 有用的工具34122.3 准备工作34122.4 初次实现34322.4.1 创建简单的内容处理程序34322.4.2 创建HTML页面34522.5 再次实现34722.5.1 分派器混合类34722.5.2 将首部和尾部写入文件的方法以及默认处理程序34922.5.3 支持目录34922.5.4 事件处理程序35022.6 进一步探索352第 23章 项目4:新闻汇总35323.1 问题描述35323.2 有用的工具35423.3 准备工作35423.4 初次实现35423.5 再次实现35623.6 进一步探索362第 24章 项目5:虚拟茶话会36424.1 问题描述36424.2 有用的工具36424.3 准备工作36524.4 初次实现36624.4.1 ChatServer类36624.4.2 ChatSession类36724.4.3 整合起来36924.5 再次实现37124.5.1 基本的命令解释功能37124.5.2 聊天室37224.5.3 登录和退出聊天室37224.5.4 主聊天室37324.5.5 新的服务器37324.6 进一步探索378第 25章 项目6:使用CGI进行远程编辑37925.1 问题描述37925.2 有用的工具37925.3 准备工作38025.4 初次实现38025.5 再次实现38125.5.1 创建文件名表单38125.5.2 编写编辑器脚本38225.5.3 编写保存脚本38325.5.4 运行编辑器38425.6 进一步探索386第 26章 项目7:自建公告板38726.1 问题描述38726.2 有用的工具38726.3 准备工作38826.4 初次实现38926.5 再次实现39326.5.1 编写脚本i39426.5.2 编写脚本i39526.5.3 编写脚本i39626.5.4 编写脚本i39826.5.5 尝试使用39926.6 进一步探索400第 27章 项目8:使用XML-RPC共享文件40127.1 问题描述40127.2 有用的工具40227.3 准备工作40327.4 初次实现40327.4.1 实现简单的节点40327.4.2 尝试使用40827.5 再次实现40927.5.1 创建客户端界面41027.5.2 引发异常41027.5.3 验证文件名41127.5.4 尝试使用41527.6 进一步探索415第 28章 项目9:使用GUI共享文件41728.1 问题描述41728.2 有用的工具41728.3 准备工作41728.4 初次实现41728.5 再次实现41928.6 进一步探索422第 29章 项目10:自制街机游戏42329.1 问题描述42329.2 有用的工具42429.2.1 pygame42429.2.2 cals42429.2.3 splay42429.2.4 nt42529.2.5 rite42529.2.6 use42529.2.7 ent42529.2.8 age42629.3 准备工作42629.4 初次实现42629.5 再次实现42929.6 进一步探索438附录A 简明教程440附录B Python参考手册447