前言

本书介绍 Python 编程语言,主要面向编程初学者。不过,如果你是一位有经验的程序员,想再学门 Python 编程语言,本书也很适合作为入门读物。

本书节奏适中,从基础开始逐步深入其他话题。我会结合食谱和教程的风格来解释新术语和新概念,但不会一次介绍很多。你会尽早并且常常接触到真实的 Python 代码。

虽然本书是入门读物,但我还是介绍了一些看起来比较高阶的话题,比如 NoSQL 数据库和消息传递库。之所以介绍它们,是因为在解决某类问题时它们比标准库更加合适。你需要下载并安装这些第三方 Python 包,从而更好地理解 Python“内置电池”适用于什么场景。此外,尝试新事物本身也充满乐趣。

我还会展示一些反面的例子,提醒你不要那么去做。如果你之前使用过其他语言并且想把风格照搬到 Python 的话,要格外注意。还有,我不认为 Python 是完美的,我会告诉你哪些东西应该避免。

前言 - 图1 书中有时会出现类似本条的提示内容,主要用于解释一些容易混淆的概念或者用更合适的 Python 风格的方法来解决同一个问题。

目标读者

本书的目标读者是那些对世界上最流行的计算语言感兴趣的人,无论你之前是否学过编程。

本书结构

本书前 7 章介绍 Python 基础知识,建议按顺序阅读。后面 5 章介绍如何在不同的应用场景中使用 Python,比如 Web、数据库、网络,等等,可以按任意顺序阅读。附录 A、B、C 介绍 Python 在艺术、商业和科学方面的应用,附录 D 是 Python 3 的安装教程,附录 E 和附录 F 是每章练习题的答案和速查表。

  • 第 1 章

程序和织袜子或者烤土豆很像。通过一些真实的 Python 程序可以了解这门语言的概貌、能力以及在真实世界中的用途。Python 和其他语言相比有很多优势,不过也有一些不完美的地方。旧版本的 Python(Python 2)正在被新版本(Python 3)替代。如果你在使用 Python 2,请安装 Python 3。你可以使用交互式解释器自行尝试本书中的代码示例。

  • 第 2 章

该章会介绍 Python 中最简单的数据类型:布尔值、整数、浮点数和文本字符串。你也会学习基础的数学和文本操作。

  • 第 3 章

该章会学习 Python 的高级内置数据结构:列表、元组、字典和集合。你可以像玩乐高积木一样用它们来构建更复杂的结构,并学到如何使用迭代器和推导式来遍历它们。

  • 第 4 章

该章会学习如何在之前学习的数据结构上用代码实现比较、选择和重复操作。你会学习如何用函数来组织代码,并用异常来处理错误。

  • 第 5 章

该章会介绍如何使用模块、包和程序组织大型代码结构。你会学习如何划分代码和数据、数据的输入输出、处理选项、使用 Python 标准库并了解标准库的内部实现。

  • 第 6 章

如果你已经在其他语言中学过面向对象编程,就可以轻松掌握 Python 的写法。该章会介绍对象和类的适用场景,有时候使用模块甚至列表和字典会更加合适。

  • 第 7 章

该章会介绍如何像专家一样处理数据。你会学到如何处理文本和二进制数据以及 Unicode 字符和 I/O。

  • 第 8 章

数据需要地方来存放。在该章中,你首先会学习使用普通文件、目录和文件系统,接着会学习如何处理常用文件格式,比如 CSV、JSON 和 XML。此外,你还会了解如何从关系型数据库甚至是最新的 NoSQL 数据库中存取数据。

  • 第 9 章

该章单独介绍 Web,包括客户端、服务器、数据抓取、API 和框架。你会编写一个带请求参数处理和模板的真实网站。

  • 第 10 章

该章会介绍系统相关内容,难度较高。你会学习如何管理程序、进程和线程,处理日期和时间,实现系统管理任务自动化。

  • 第 11 章

该章会介绍网络相关内容:服务、协议和 API。该章示例覆盖了底层 TCP 套接字、消息库以及队列系统、云端部署。

  • 第 12 章

该章会介绍 Python 相关的小技巧,比如安装、使用 IDE、测试、调试、日志、版本控制和文档,还会介绍如何寻找并安装有用的第三方包、打包自己的代码以供重用,以及如何寻找更多有用的信息。祝你好运。

  • 附录 A

附录 A 会介绍 Python 在艺术领域的应用:图像、音乐、动画和游戏。

  • 附录 B

Python 在商业领域也有应用:数据可视化(图表、图形和地图)、安全和管理。

  • 附录 C

Python 在科学领域应用得尤其广泛:数学和统计学、物理科学、生物科学以及医学。附录 C 会介绍 NumPy、SciPy 和 Pandas。

  • 附录 D

如果你还没有安装 Python 3,附录 D 会介绍 Windows、Mac OS/X、Linux 和 Unix 下的安装方法。

  • 附录 E

附录 E 包含每章结尾的练习答案。请在亲自尝试解答之后再查看答案。

  • 附录 F

附录 F 包含一些有用的速查内容。

Python版本

开发者会不断向计算机语言中加入新特性、修复问题,因此计算机语言一直在变化。本书中的代码示例在 Python 3.3 中编写和测试。在本书编辑期间 Python 3.4 发布了,我会介绍一些新版本的内容。如果你想了解相关信息和特性的发布时间,可以阅读 What's New in Python 页面(https://docs.python.org/3/whatsnew/)。这个页面技术性比较强,对于 Python 初学者来说难度较大,不过如果你之后想研究 Python 的兼容性,可以阅读它。

排版约定

本书使用了下列排版约定。

  • 楷体

表示新术语。

  • 等宽字体(constant width

表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字等。

  • 加粗等宽字体(constant width bold

表示应该由用户输入的命令或其他文本。

前言 - 图2 该图标表示一般注记。

前言 - 图3 该图标表示警告或警示。

使用代码示例

补充材料(代码示例、练习等)可以从 https://github.com/madscheme/introducing-python 下载。

本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发 O'Reilly 图书的示例光盘则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。

我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和 ISBN。比如:“Introducing Python by Bill Lubanovic(O'Reilly). Copyright 2015 Bill Lubanovic, 978-1-449-35936-2.”

如果你觉得自己对示例代码的用法超出了上述许可的范围,欢迎你通过 permissions@oreilly.com 与我们联系。

Safari® Books Online

前言 - 图4

Safari Books Online(http://www.safaribooksonline.com)是应运而生的数字图书馆。它同时以图书和视频的形式出版世界顶级技术和商务作家的专业作品。技术专家、软件开发人员、Web 设计师、商务人士和创意专家等,在开展调研、解决问题、学习和认证培训时,都将 Safari Books Online 视作获取资料的首选渠道。

对于组织团体、政府机构和个人,Safari Books Online 提供各种产品组合和灵活的定价策略。用户可通过一个功能完备的数据库检索系统访问 O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 以及其他几十家出版社的上千种图书、培训视频和正式出版之前的书稿。要了解 Safari Books Online 的更多信息,我们网上见。

联系我们

请把对本书的评价和问题发给出版社。

美国:

O'Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

奥莱利技术咨询(北京)有限公司

O'Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信息,包括勘误表、示例代码以及其他信息。本书的网站地址是:

http://shop.oreilly.com/product/0636920028659.do

对于本书的评论和技术性问题,请发送电子邮件到:

bookquestions@oreilly.com

要了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:

http://www.oreilly.com

我们在 Facebook 的地址如下:

http://facebook.com/oreilly

请关注我们的 Twitter 动态:

http://twitter.com/oreillymedia

我们的 YouTube 视频地址如下:

http://www.youtube.com/oreillymedia

致谢

非常感谢那些阅读本书初稿并给予反馈的人。我尤其要感谢仔细审阅本书的 Eli Bessert、Henry Canival、Jeremy Elliott、Monte Milanuk、Loïc Pefferkorn 和 Steven Wayne。