收藏 分享(赏)

Python基础教程(第3版).pdf

上传人:刘岱文 文档编号:3725 上传时间:2018-05-08 格式:PDF 页数:482 大小:4.60MB
下载 相关 举报
Python基础教程(第3版).pdf_第1页
第1页 / 共482页
Python基础教程(第3版).pdf_第2页
第2页 / 共482页
Python基础教程(第3版).pdf_第3页
第3页 / 共482页
Python基础教程(第3版).pdf_第4页
第4页 / 共482页
Python基础教程(第3版).pdf_第5页
第5页 / 共482页
点击查看更多>>
资源描述

1、 内 容 提 要 本书包括 Python 程序设计的方方面面 : 首先 , 从 Python 的安装开始 , 随后介绍了 Python 的基础知识 和基本概念 , 包括列表 、 元组 、 字符串 、 字典以及各种语句 ; 然后 , 循序渐进地介绍了一些相对高级的主 题 , 包括 抽象 、 异常 、 魔法方法 、 属性 、 迭代器 ; 此后 , 探讨了如何将 Python 与数据库 、 网络 、C 语言等 工具结合使用 , 从而发挥出 Python 的强大功能 , 同时介绍了 Python 程序测试 、 打包 、 发布等知识 ; 最后 , 作者结合前面讲述的内容 , 按照实际项目开发的步骤向读者

2、介绍了 10 个具有实际意义的 Python 项目的开 发过程 。 本书内容涉及的范围较广 , 既能为初学者夯实基础 , 又能帮助程序员提升技能 , 适合各个层次的 Python 开发人员阅读参考 。 定价:99.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号 著 挪 Magnus Lie Hetland 译 袁国忠 责任编辑 杨 琳 责任印制 彭志环 人民邮电出版社出版发行 北京市丰台区成寿寺路11 号 邮编 100164 电子邮件 网址 htt

3、p:/ 北京 印刷 开本:8001000 1/16 印张:29.75 字数:703千字 2018年 2 月第 3 版 印数:223 001 231 000册 2018年 2 月北京第 1 次印刷 著作权合同登记号 图字:01-2017-4043号 错误!文档中没有指定样式的文字。 1 1 2 3 4 5 8 10 11 9 6 7 版 权 声 明 Original English language edition, entitled Beginning Python: From Novice to Professional, Third Edition by Magnus Lie Hetlan

4、d, published by Apress, 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705 USA. Copyright 2017 by Magnus Lie Hetland. Simplified Chinese-language edition copyright 2018 by Posts & Telecom Press. All rights reserved. 本书中文 简体 字版由Apress L. P. 授权人民 邮电出版 社独 家出版。 未 经 出版者书 面许 可, 不得 以任何方 式复 制或抄袭 本书 内容。 版权

5、所有 ,侵 权必究。 2 致 谢 引 言 1 1 2 3 4 5 8 10 11 9 6 7 前 言 巨蟒剧团 有首 老歌唱道 : “ 又来了一 个, 它走了又 来。 又来了一 个, 什么时候 是个 头?” 自 本书第2 版面 世以来,Python 3 的普及 程 度得到了 极大 提高,因 此这 一版完全 转向 了Python 3 。在 此期间, 还有 其他的变 化: 在Python生态 系统中, 各种 包轮番登 场, 各种编码 实践 大行其道 后又 日渐式微 。 在 必要之处 或对 读者有帮 助的 前提下 , 本书 的有些部 分完 全重写 , 但最 初的痕迹 还依 稀可见。 例如 ,本书前

6、身Practical Python 于21世纪初出 版时,Usenet 依然应用 广泛 ,可现在 大多 数互联网用户 可能从未听说 过它。因此, 对于第23 章创 建连接到NNTP 服务器的项 目,与其 说 是 为了介绍 主流 编程生涯 中将 用到的编 程技 能, 不如说 是 让读者了 解一 下历史 。 一 些 比较古怪 的内 容也依旧 保留 ,因为它 们是 很不错的 编程 示例,也 是本 书悠长历 史的 见证。 与以往一样,我要深深地感谢让本书以前各版得以付梓的人。这里我要特别感谢Mark Powers ,感谢 他在我进 度缓 慢时极具 耐心 。还要感 谢Michael Thomas ,感谢

7、他 出色 的技术审 阅工 作 (并 指出了 原稿中所 有的Python 2 式print 语句) 。 但 愿你喜欢 全新 升级后的 这一 版。 正 如Terny Jones 在提到 那首老歌 时所 说: “ 显然, 有一个完 整的 管弦乐队 会更 好。 ” 第 2版前言 新版的Python 基础教 程 终于和大 家见 面了。如 果算 上本书的 前身Practical Python ,实际 上这已经是 第3 版了。这是我将近10 年 心血的结晶。 在此期间,Python发生了很 多有趣的变化, 我也尽力 调整 了对这门 语言 的介绍。 当 前 , Python处于 长期以来 最为 翻天覆地 的转

8、 变期: Python 3 推出。编 写本 书期间, 最终 版本还未 发布 ,但其包 含的 功能已确 定, 还推出了 多个 可用的版 本。 这次修订 不向 后兼容 , 这是 我编写这 一版 时面临的 最大 挑战。 换而言 之, 我 不能仅 仅挑出一 些新 增的 功能 进行 介绍 。另 外, 它还 修改 了一 些既 有的 功能 ,因 此有 些在Python 2.5中理所 当然 的事 情在新版 本中 已不再正 确。 倘若整 个Python 社区 都立即转向Python 3 并修改 所有的遗留代 码,那根本不 成问题。我只需 介绍Python 3 就行! 然而, 目前依然 存在 大量用Python

9、2编写的代码 , 而且 大家可 能还会继 续编 写 这样的代 码, 直 到 有 一 天 所 有 人 都 认 为 应 使 用Python 3。 那么我是如何应对这种变化的呢?首先, 虽然有些向后兼容的变化, 但Python语言本身总体变 Monty Python,英国的一个 超现 实幽默表演 团体 ,喜剧界的 披头 士,在20世纪70 年代风靡全 球。Python语言的命 名 来源于 此。 编者注 2 前 言 化不大。 因此, 如果完全针对Python 2.5, 编写的内容对Python 3来说也是大体正确的 (对Python 2.6 来说更是如此) 。 至于那些不再正确的部分, 我采取了比较保

10、守的态度, 因为大家完全接受Python 3 还需要一段时间。因此,这一版主要是基于Python 2.5编写的,同时指出将会改变的情形。另外, 我还提供了附录D ,让你对重大变化有大致的了解。对大多数读者来说,这样处理是完全可行的。 编 写 这一版期间, 有几个人帮了我很大的忙。 与前两版 (本书第1 版以及之前的Practical Python ) 一样, Jason Gilmore扶我上马, 并在项目启动期间扮演了重要角色。 项目启动后, Richard Dal Porto、 Frank Pohlmann 和Dominic Shakeshaft 不断伸出援手,保证项目得以顺利进行。在确保代

11、码正确方 面,Richard Taylor居功至伟 (倘若代码依然存在错误, 责任在我) ,而Marilyn Smith出色地完成了 手稿润 色工 作 。这里 还要 感 谢Apress出版 社的其 他工 作 人员, 他们 是Liz Berry 、Beth Christmas 、 Steve Anglin 和Tina Nielsen 。另外,感谢包括Bob Helmbold 和Waclaw Kusnierczyk在内的读者提出勘 误和宝贵的建议。 最后, 在本书前两版的出版过程中, 很多人都提供了帮助, 这里衷心地感谢他们。 第 1版前言 几年 前,Jason Gilmore 找 到我 ,让我为

12、Apress 出 版社写本 书。他看了我 撰写的Python 在线 教 程, 想让 我写 一本风格 类似 的书。 我 受宠 若惊, 既 兴奋 又有点紧 张。 我最关心 的是 , 这需要 多长 时间、对 学业 会有多大 的影 响,因为 当时 我正在读 博士 。结果表 明, 这是一项 非常 艰巨的任 务, 花费的时 间远 远超出了 预期 。 所幸这对 我的 学业没有 太大 的影响, 我按 时获得了 博士 学位。 去年, Jason 又找到我说 , Apress 出版社想 让我对原 书进 行修订和 扩充 , 不知道 我是 否有兴趣 。 当时我正 忙于 熟悉新取 得的 副教授职 位, 而业余时 间都

13、花在了扮 演Peer Gynt 上, 因此时间依 然是 主要的问 题。 事情安排 妥当 并有更多 业余 时间后, 我 接 受了这项 任务 。 你可能猜 到 了, 最终的 结 晶就是你 现在 手捧的这 本书 。本书的 大多 数内容都 来自Practical Python ,但基 于Python 的最新变 化做了全 面修 订, 同时新 增 了几章。 另 外 , 根据这一 版 的组织结 构, 调整了原 来一 些内容的 位置。 很多读者 对Practical Python 提供了积 极的 反馈, 但愿本 版保留了 读者 喜欢的内 容, 同时新增 的内 容也能得 到读 者青睐。 本书编写 期间 , 有几

14、个人 不 断地给予 我帮 助和鼓励。 没 有他们, 本 书 根本不可 能付 梓。 这里 对他们表 示衷 心的感谢 。 感 谢本书编 写期 间直接与 我协 作的团队 :Jason Gilmore 让这个项目 得以 上马并确 保不 偏离方向 ;Beckie Stones 整理各种材 料;Jeremy Jones 和Matt Moodie 提供了专 业 的 意见和见解;Linda Marousek 对我极具耐心;还有其他成员让本书得以顺利出版。如果没有 Practical Python 打下的 基础 , 本书 不会是 现在这个 样子 。 这里 要感谢Jason Gilmore 和Alex Marte

15、lli 出色的技 术编 辑工作 (Jason 负责全书, Alex 负责前半部 分) 以及本 职 之外的各 种意 见和建议。 感 谢Erin Mulligan 和Tory McLearn 一路上 领 我前行, 并在 需要时让 我调 整方向。 感谢Nancy Rapoport 对手稿进 行润 色。感谢Grace Wong 回答 他人无法 回答 的问题。 感谢Pete Shinners 就项目10的游 戏 提供宝贵 的建 议。 感谢多 位 读者的来 信, 这些来信 给了 我极大的 鼓励 ! 最后, 感 谢 我的家人 和朋 友,尤其 是女 朋友Ranveig 在本书编 写期 间给予的 宽容 。 引

16、言 1 1 2 3 4 5 8 10 11 9 6 7 引 言 C程序犹如拿着剃刀在刚打过蜡的地板上劲舞。 Waldi Ravens C+学起来很难,因为它天生如此。 佚名 Java从很多方面来说,就是简化版的C+。 Michael Feldman 接下来请欣赏与众不同的表演。 巨蟒剧团之飞翔的马戏团 前面引用 了别 人的几句 话, 旨在为本 书定 下基调 , 就是 不那么严 肃正 式。 为 让本书 阅读起来 轻松愉快 ,我 力图以幽 默的 方式来讨 论Python 编程这个 主题。幽 默是Python社区的 传统,而 这种 幽默在很 大程 度上与巨 蟒剧 团的短剧 相关 。 因此 , 本书

17、的有些示 例看 起来有点 傻, 但愿你能 容忍 。 顺便 说一句 ,Python 来源 于巨蟒剧 团 (Monty Python) , 而 不 是蟒蛇 。 这里 将 简单地说 说Python 是什么, 为何 要使用它 ,有 哪些人在 使用 它,本书 为谁 而写,并 概述 本书的组 织结 构。 Python是什么 ?为何要 使用 它?官方 宣传 说: Python 是 一种面向 对象 的解释性 高级 编程语言 , 具有动态 语义 。 这句话中 有 很多术语, 在 阅读本书 的过 程中, 你会 逐 渐了解其 含义 。 这句话的 要 点在于,Python 是一种 知道 如何不妨 碍你 编写程序 的编

18、 程语言。 它 让 你能够毫 无困 难地实现 所需 的功能 , 还让 你能够编 写出 清晰易懂 的程 序 (与 使用当 前流行的 其他 大多数编 程语 言相比 , 编写 出来的程 序要 清晰易懂 得多 ) 。 虽然Python 的速 度可 能没有C 、C+ 等 编译 型语 言那么快 ,但 它能够节 省编 程时间。 仅考 虑 到 这一 点就值得 使用Python , 况且 对大多数 程序 而言,速 度方 面的差别 并不 明显。如 果你 是C 语 言 程序 员,那么 你可 轻松地使 用C 语言 实现 程序 的重要部 分, 再将其与Python 部分 整合 起来 。如 果你没有 任何 编程经验 (

19、并 对我提及C 和C+感到有点 迷惑) , 那么 简洁而强 大的Python就是你 进 入编程殿 堂的 理想选择 。 2 引 言 那么,有 哪些 人在使用Python 呢?从Guido van Rossum 于20世纪90年代初创造 这门 语言起, 其追随者 就在 不断增加 , 最 近几年尤 其如 此。Python 广 泛用于完 成系 统管理任 务 ( 例如, 它 是多 个Linux 发行版的重要组成部分) ,也被 用来向新手介绍编程。NASA 使用它来完 成开发工作, 并 在多个系 统中 将其用作 脚本 语言;工 业光 魔公司在 预算 庞大的故 事片 中使用Python来制作特 效; Yah

20、oo! 使用它 (以及其他 技 术) 来管理 讨 论组;Google 使用它实 现了 网络爬虫 和搜 索引擎的 众多 组件。Python还被用于 计算 机游戏和 生物 信息等众 多领 域。 不久 后可 能就会有 人问 : 有谁不 使用 Python呢? 本书是为有志于学习Python 编程的人写的,适合从编程门外汉到计算机高手的各种读者阅 读 。如果 你没有 任何编 程经验 ,应从 第1 章 开始阅 读,阅 读到看 不懂的 内容后 ,开始 动手编 写一 些程序。 等到 条件成熟 后, 再回过头 来继 续阅读更 复杂 的内容。 如 果你 熟悉编程 ,对 有些基础 知识 可能并不 陌生 (但书中

21、会不 时出现令 你意 外的细节 ) ,因 此可大 致浏览前几章 ,以便对Python 的工作原理 有大致认识。 当然,也可通 读附录A 。它是根据 Python 在线教 程“Instant Python ”改编而来的,让你 能够快速了解 最重要的Python 概念。对它 有 大致认识 后, 可直接跳 到第10 章,去 学习Python标准库 。 本书的最 后10章是10个编程 项目, 展示了Python语言的 各种功能 。 无 论你是初 学者 还是专家 , 都应该会 对这 些项目感 兴趣 。 虽然对经 验 不那么丰 富的 程序员来 说 , 最后几个 项目 理解起来 有点 难,但阅 读本 书的前

22、半 部分 之后,完 全能 够按说明 完成 这些项目 。 这些项目 涉及 众多主题, 掌 握这些主 题对 你自己动 手编 写程序大 有裨 益。 你将学 习 如何完成 一些现在 看起 来根本无 法完 成的任务, 如 创建聊天 服务 器、 点对点 文 件共享系 统和 功能齐备 的图 形计算机 游戏 。这些任 务乍 一看好像 很难 ,但最终 你将 发现,它 们实 际上大多 容易 得难以置 信。 如果你想 下载 源代码, 可访 问Apress网站(http:/ ) 。 就说 这么多。冗长 的引言总是让 我觉得有点烦 ,现在就开始Python 编程吧 从第1 章或 附 录A 开始。祝 你好运, 编程 愉快

23、! 图 灵社区 本书页面 也提供 源代码下 载: 。编者注 目 录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 17 目 录 第 1章 快速上手:基础知识. 1 1.1 交互式解释器. 1 1.2 算法是什么. 2 1.3 数和表达式. 3 1.4 变 量. 5 1.5 语 句. 5 1.6 获取用户输入. 7 1.7 函 数. 8 1.8 模 块. 8 1.8.1 cmath 和复数. 9 1.8.2 回 到 未 来. 10 1.9 保存并执行程序. 10 1.9.1 从命令提示符运行 Python 脚本. 12 1.9.2 让脚本像普通程序一样. 1

24、2 1.9.3 注 释. 13 1.10 字 符 串. 13 1.10.1 单引号字符串以及对引号 转义. 14 1.10.2 拼接字符串. 15 1.10.3 字符串表示 str 和 repr. 15 1.10.4 长字符串、原始字符串和 字节. 16 1.11 小 结. 21 1.11.1 本章介绍的新函数. 21 1.11.2 预 告. 22 第 2章 列表和元组. 23 2.1 序列概述. 23 2.2 通用的序列操作. 24 2.2.1 索 引 . 24 2.2.2 切 片 . 26 2.2.3 序 列 相 加. 28 2.2.4 乘 法 . 28 2.2.5 成 员 资 格. 29

25、 2.3 列表:Python 的主力. 31 2.3.1 函 数 list. 31 2.3.2 基本的列表操作. 31 2.3.3 列 表 方 法. 33 2.4 元组:不可修改的序列. 38 2.5 小 结. 39 2.5.1 本章介绍的新函数. 40 2.5.2 预 告 . 40 第 3章 使用字符串. 41 3.1 字符串基本操作. 41 3.2 设置字符串的格式:精简版. 41 3.3 设置字符串的格式:完整版. 43 3.3.1 替换字段名. 43 3.3.2 基 本 转 换. 44 3.3.3 宽度、精度和千位分隔符. 45 3.3.4 符号、对齐和用 0 填充. 46 3.4 字

26、符串方法. 48 3.4.1 center. 48 3.4.2 find. 48 3.4.3 join. 49 3.4.4 lower. 50 3.4.5 replace. 51 3.4.6 split. 51 3.4.7 strip. 51 3.4.8 translate. 52 2 目 录 3.4.9 判断字符串是否满足特定的 条件. 52 3.5 小 结. 53 3.5.1 本章介绍的新函数. 53 3.5.2 预 告. 53 第 4章 当索引行不通时. 54 4.1 字典的用途. 54 4.2 创建和使用字典. 55 4.2.1 函 数 dict. 55 4.2.2 基本的字典操作.

27、55 4.2.3 将字符串格式设置功能用于 字典. 57 4.2.4 字 典 方 法. 58 4.3 小 结. 63 4.3.1 本章介绍的新函数. 63 4.3.2 预 告. 63 第 5章 条件、循环及其他语句. 64 5.1 再 谈 print 和 import. 64 5.1.1 打印多个参数. 64 5.1.2 导入时重命名. 65 5.2 赋值魔法. 66 5.2.1 序 列 解 包. 66 5.2.2 链 式 赋 值. 67 5.2.3 增 强 赋 值. 67 5.3 代码块:缩进的乐趣. 68 5.4 条件和条件语句. 69 5.4.1 这正是布尔值的用武之地. 69 5.4.

28、2 有条件地执行和 if 语句. 70 5.4.3 else 子句. 70 5.4.4 elif 子句. 71 5.4.5 代码块嵌套. 71 5.4.6 更复杂的条件. 71 5.4.7 断 言. 75 5.5 循 环. 76 5.5.1 while 循环. 77 5.5.2 for 循环. 77 5.5.3 迭 代 字 典. 78 5.5.4 一些迭代工具. 78 5.5.5 跳 出 循 环. 80 5.5.6 循 环 中 的 else 子句. 82 5.6 简单推导. 83 5.7 三人行. 84 5.7.1 什么都不做. 84 5.7.2 使 用 del 删除 . 85 5.7.3 使

29、 用 exec 和 eval 执行字符串 及计算其结果. 86 5.8 小 结. 88 5.8.1 本章介绍的新函数. 89 5.8.2 预 告. 89 第 6章 抽象. 90 6.1 懒惰是一种美德. 90 6.2 抽象和结构. 91 6.3 自定义函数. 91 6.3.1 给函数编写文档. 92 6.3.2 其实并不是函数的函数. 93 6.4 参数魔法. 93 6.4.1 值从哪里来. 94 6.4.2 我能修改参数吗. 94 6.4.3 关键字参数和默认值. 98 6.4.4 收 集 参 数. 100 6.4.5 分 配 参 数. 102 6.4.6 练习使用参数. 103 6.5 作用域. 105 6.6 递 归. 107 6.6.1 两个经典案例:阶乘和幂. 108 6.6.2 另一个经典案例:二分查找. 109 6.7 小 结. 112 6.7.1 本章介绍的新函数. 113 6.7.2 预 告. 113 第 7章 再谈抽象. 114 7.1 对象魔法. 114 7.1.1 多 态. 115 7.1.2 多态和方法. 116 7.1.3 封 装. 118 7.1.4 继 承. 119 7.2 类. 119

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 网络技术 > 后端技术

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报