- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
1.2 开始使用 Python
编程的第一步是最难的。(其难度和你学习走路时迈的第一步没有什么不同!)回想一下你培养新爱好或学习新运动的时候。在入门 Python(或任何其他编程语言)时,你将会遇到类似的焦虑和障碍。或许你很幸运,有一个优秀的导师帮你迈出第一步。如果没有的话,你可能已经历过类似的挑战。无论你如何迈出第一步,一定要记住,这个阶段往往是最艰难的。
我们希望本书可以成为你的入门指南,但它无法替代优秀的导师或使用 Python 的丰富经验。在本书中,我们提供了一些资源和网站信息,以便你在遇到书中没有讲到的问题时有所参考。
为了避免浪费太多时间进行大量配置和高级安装,我们的 Python 环境将采用最简单的初始安装。在接下来的几节中,我们将选定 Python 版本,安装 Python 以及一个可以帮助我们使用外部代码和库的工具(pip),并安装代码编辑器,以便编写并运行代码。
1.2.1 Python版本选择
你需要选择使用哪个版本的 Python。Python 版本实际上指的是 Python 解释器的版本。解释器让你可以在计算机上读写并运行 Python。维基百科(https://en.wikipedia.org/wiki/Interpreter_(computing))是这样描述解释器的:
在计算机科学中,解释器是一种计算机程序,可以直接运行用编程语言或脚本语言编写的指令,而无需事先将其编译成机器语言程序。
没有人会让你背诵这个定义,所以即使你没有完全理解也不必担心。本书的作者之一 Jackie 刚开始编程的时候,无法理解入门书中“批处理编译”(batch compiling)这一概念,所以她就卡在这一部分无法继续读下去。如果她连这都不懂,怎么能编程呢?我们在后面会讨论编译的话题,但是现在将上述定义总结如下:
解释器是读取并运行 Python 代码的计算机程序。
Python(或 Python 解释器)主要有两个版本:Python 2.X 和 Python 3.X。Python 2.X 的最新版本是 Python 2.7,这也是本书使用的 Python 版本。Python 3.X 的最新版本是 Python 3.5,这也是最新可用的 Python 版本。目前你可以认为 Python 2.7 的代码无法在 Python 3.4 中运行。专业的说法是,Python 3.4 破坏了向后兼容。
你可以写出同时兼容 Python 2.7 和 Python 3.4 的代码,但这既非本书的要求,也不是本书的重点。一开始就在这件事情上花费大量精力,就好比住在佛罗里达州的人担心如何在雪中开车一样 2。有一天你可能会需要这项技能,但此时此刻这并不是你需要关注的重点。
2美国佛罗里达州又名“阳光之州”,一年四季很少下雪。——译者注
有些读者可能会好奇我们为何决定使用 Python 2.7 而不是 Python 3.4。这个话题在 Python 社区中是很有争议的。Python 2.7 是被广泛使用的版本,而 Python 3.X 正在被逐步接受。我们之所以选择 Python 2.7,是想保证你能够找到容易阅读且容易获取的资源,并确保你的操作系统及服务支持你使用的 Python 版本。
本书中的很多代码在 Python 3 中也可以运行。如果你想在 Python 3 中运行其中一些示例,当然可以;但我们更希望你专注于学习 Python 2.7,在学完本书后再继续学习 Python 3。为了兼容 Python 3 需要修改代码,想了解这方面的更多内容,可以查看官方更改文档:https://docs.python.org/3.0/whatsnew/3.0.html。
在阅读本书的过程中,你会用到自己编写的代码,还会用到其他(牛)人编写的代码。这些外部代码大部分都可以在 Python 2.7 下运行,但可能无法兼容 Python 3.4。如果你正在使用 Python 3 的话,需要重写代码(如果对遇到的每一段代码都要进行重写和编辑,这会浪费大量的时间,你可能很难完成第一个项目)。
把你的第一段代码当作草稿,以后你可以回来进一步修订完善。现在我们开始来安装 Python。
1.2.2 安装Python
好消息是,Python 可以在所有操作系统上运行。坏消息是,不同操作系统的安装方法有所不同。按照 Python 编程的流行程度排序,我们将讨论两个主要的操作系统:Mac OS X 和 Windows。如果你用的是 Mac OS X 或 Linux,可能已经安装了 Python。想了解更详细的安装过程,我们推荐以你的 Linux 发行版加“Python 高级安装”(advanced Python setup)为关键词在 Web 上搜索,以寻求更多建议。
与 Windows 系统相比,在 OS X 系统和 Linux 系统上安装和运行 Python 要容易一些。想深入了解这种差异存在的原因,我们推荐阅读 Windows 和基于 Unix 的操作系统的历史。可以对照阅读这两篇文章:一篇是 Hadeel Tariq Al-Rayes 写的“Studying Main Differences Between Linux & Windows Operating Systems”(http://www.ijens.org/vol_12_i_04/126704-8181-ijecs-ijens.pdf),文中的观点支持 Unix;另一篇是微软的“Functional Comparison of UNIX and Windows”(https://technet.microsoft.com/en-us/library/bb496993.aspx)。
如果你用的是 Windows,应该也可以运行所有的代码;但是在 Windows 下可能还需要安装代码编译器和额外的系统库,以及设置环境变量。
为了安装 Python 并能正常使用,请根据你的操作系统安装提示,按照相应的步骤来操作。我们还将进行一系列的测试,确保一切正常运行,然后才能进入下一章。
01. Mac OS X系统
首先打开终端(http://en.wikipedia.org/wiki/Terminal_(OS_X)),一个让你可以和计算机进行交互的命令行界面。个人计算机(PC)刚刚出现时,你只能通过命令行界面与计算机交互。现在大多数人用的都是图形界面操作系统,因为这种操作系统访问更方便,用户也更加广泛。
有两种方法可以在计算机上找到终端。第一种方法是通过 OS X 系统的 Spotlight。点击 Spotlight 图标——屏幕右上角的放大镜——输入“Terminal”。然后选择出现在“应用程序”(Applications)类别旁边的图标。
选定之后,会弹出一个类似图 1-2 中的小窗口(请注意,你的 Mac OS X 版本不同,界面可能也会有所不同)。
图 1-2:利用 Spotlight 搜索终端
你还可以通过 Finder 启动终端。终端位于“实用工具”(Utilities)文件夹:应用程序(Applications)→实用工具(Utilities)→终端(Terminal)。
选择并启动终端后,你应该会看到类似图 1-3 的界面。
图 1-3:新打开的终端窗口
现在最好在适当的位置(比如在 Dock 中)创建终端的快捷方式,这样以后启动终端会比较方便。你只需在 Dock 中的终端图标上点击右键,依次选择“选项”(Options)和“在 Dock 中保留”(Keep in Dock),即可创建终端的快捷方式。运行本书中的每一个练习都需要启动终端。
大功告成。Mac 电脑预装了 Python,你无需再做其他事情。如果你想设置计算机使其能够使用后面的高级库,请查看附录 D。
02. Windows 8和Windows 10
Windows 并没有预装 Python,但有专门的 Python 安装程序(https://www.python.org/downloads/windows/)。你需要弄清楚你的 Windows 是 32 位还是 64 位(http://windows.microsoft.com/en-us/windows7/find-out-32-or-64-bit)。如果你用的是 64 位 Windows,需要从下载页面下载 x86-64 MSI 安装程序;如果不是 64 位的话,你可以下载 x86 MSI 安装程序。
下载好安装程序之后,只需双击它,按照提示一步步安装即可。我们建议选择为所有用户安装。点击靠近选项的方框选中全部,同时选择在硬盘上安装 Python 特性(见图 1-4)。
图 1-4:利用安装程序添加 Python 特性
成功安装 Python 后,你需要将 Python 加入到环境设置中。这样你就可以在 cmd 工具(Windows 下的命令行界面)中与 Python 交互。要做到这一点,只需在计算机中搜索“环境变量”(environment variable)。选择“编辑系统环境变量”(Edit the system environment variables)选项,然后点击“环境变量…”(Environment Variables...)按钮(见图 1-5)。
图 1-5:编辑环境变量
将“系统变量”(System variables)列表下拉,选择 Path 变量,然后点击“编辑”(Edit)。如果列表中找不到 Path 变量,点击“新建”(New)创建一个新的 Path 变量。
将下列内容添加到 Path 变量的末尾,注意每一个路径之间要用分号隔开(包括已有内容末尾的分号):
C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\;
Path 变量的末尾应该类似图 1-6 所示。编辑好环境变量之后,点击“确定”(OK)来保存设置。
图 1-6:将 Python 加入 Path 系统变量
1.2.3 测试Python
现在你应该已经打开命令行(终端或 cmd3),准备启动 Python。在 Mac 上命令行的结尾应该是 $ 符号,在 Windows 上应该是 > 符号。在提示符后输入 python,然后按 Return(或 Enter)键:
3想在 Windows 上打开 cmd 工具,只需搜索“命令提示符”(Command Prompt),或者打开“所有程序”(All Programs),依次选择“附件”(Accessories)和“命令提示符”(Command Prompt)。
$ python
一切正常的话,你应该会看到 Python 提示符(>>>),如图 1-7 所示。
图 1-7:Python 提示符
对于 Windows 用户,如果没有出现 Python 提示符,请检查 Path 变量的设置是否正确(如前文所述),软件是否均已正确安装。如果你用的是 64 位版本,可能需要卸载 Python(可以用下载的 MSI 文件对 Python 安装进行修改、卸载和修复),并尝试安装 32 位版本。这样还不行的话,我们建议你将安装过程中遇到的具体错误信息放到网上去搜索。
>>> 与 $ 或 > 的对比
Python 提示符与系统提示符(在 Mac/Linux 上是 $,在 Windows 上是 >)有所不同。初学者往往犯这样的错误:在默认的终端提示符后面输入 Python 命令,而在 Python 解释器中输入终端命令。两种情况都会报错。遇到报错时,记住上面这两种错误,检查确认你只在 Python 解释器中输入 Python 命令。
如果把本应输入到系统终端的命令输入到 Python 解释器中,可能会出现 NameError(命名错误)或 SyntaxError(语法错误)。而如果在系统终端中输入 Python 命令,可能会出现 bash 错误 Command not found。
Python 解释器启动时给出了几行有用的信息。其中一行显示的是我们正在使用的 Python 版本(图 1-7 中显示的是 Python 2.7.5)。这一信息在错误排查过程中非常重要,因为有些时候,某些命令或工具可以在这一版本的 Python 中正常运行,在另一版本中却无法正常运行。
下面我们用 import 语句来快速测试一下 Python 的安装是否成功。在 Python 解释器中输入下列代码:
import sys import pprint pprint.pprint(sys.path)
代码的输出应该是一个列表,列表里面是你计算机中的许多目录或位置。这个列表给出的是 Python 程序寻找 Python 文件的具体位置。当你想要排查 Python 的模块导入错误时,这一组命令十分有用。
下面是一个输出实例(你的计算机输出的列表可能会有所不同;还需要注意的是,为了适应本书的页面宽度,对某些内容进行了折行):
['', '/usr/local/lib/python2.7/site-packages/setuptools-4.0.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg', '/usr/local/Cellar/python/2.7.7_1/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.7_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.7_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/Library/Python/2.7/site-packages', '/usr/local/lib/python2.7/site-packages']
如果代码运行失败,你会得到错误信息。调试 Python 错误最简单的方法就是阅读错误信息。例如,如果你输入的是 import sus 而不是 import sys,你会看到以下输出:
>>> import sus Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named sus
阅读最后一行:ImportError: No module named sus。这句话的意思是出现了模块导入错误,因为 Python 中没有 sus 模块。Python 搜遍计算机中的文件,没有找到名为 sus 且可导入的 Python 文件或文件夹。
如果在敲本书代码时犯了拼写错误,可能会引发语法错误。在接下来的例子中,我们故意把 pprint.pprint 拼错,输入的是 pprint.print(sys.path()):
>>> pprint.print(sys.path()) File "<stdin>", line 1 pprint.print(sys.path()) ^ SyntaxError: invalid syntax
上面我们是故意输错的,但在本书的写作过程中,本书的一位作者真的输错了这行代码。你要习惯于在出现错误时排查并解决错误。你也应该承认,作为开发人员,错误是学习过程的一部分。我们希望你能对错误习以为常。你应该把错误看作一次学习的机会,可以让你学习 Python 和编程的新知识。
模块导入错误和语法错误都是代码开发过程中最常见的错误,并且也是最容易解决的。在遇到错误时,网络搜索引擎是帮你处理错误的得力助手。
在进入下一节之前,一定要退出 Python 编辑器。这样你就回到了终端或 cmd 的提示符界面。输入以下代码来退出 Python:
exit()
现在你的提示符应该变回了 $(Mac/Linux)或 >(Windows)。在下一章中我们将进一步研究 Python 解释器。接下来我们来安装一个叫作 pip 的工具。
1.2.4 安装pip
pip(http://pip.readthedocs.org/en/latest/)是用于管理 Python 共享代码和库的命令行工具。程序员经常会解决相同的问题,所以会分享他们的代码来帮助他人。这也是开源软件文化的一个重要组成部分。
Mac 用户可以通过在终端中运行下载的简单 Python 脚本来安装 pip(https://pip.pypa.io/en/latest/installing/#install-pip)。你需要与下载的脚本处于同一文件夹。例如,如果你将脚本下载到 Downloads 文件夹中,你需要在终端中进入这个文件夹。在 Mac 上有一种简单的方法,按住 Command 键(Cmd),然后把 Downloads 文件夹拖入终端中。另一种方法是输入一些简单的 bash 命令(附录 C 中有对 bash 更全面的介绍)。首先在终端中输入以下命令:
cd ~/Downloads
这条命令将计算机的目录切换到主文件夹下的 Downloads 子文件夹。为了检查你是否位于 Downloads 文件夹下,在终端中输入以下命令:
pwd
这条命令可以在终端中显示你的当前工作目录,即你现在位于的文件夹。它的输出应该是类似下面这样的内容:
/Users/your_name/Downloads
如果输出没问题,你只需用这个命令就可以运行该文件:
sudo python get-pip.py
由于你运行的是 sudo 命令(你正在用特殊权限运行该命令,这样才可以在受限区域安装软件包),系统会提示你输入密码。你应该可以看到安装软件包的一系列提示信息。
Windows 上可能已经安装了 pip(Windows 的 Python 安装包自带 pip)。要 检查是否安装了 pip,你可以在 cmd 工具中输入 pip install ipython。如果系统报错的话,去下载 pip 安装脚本,用 chdir C:\Users\YOUR_NAME\Downloads 命令将目录切换到 Downloads 文件夹(把 YOUR_NAME 换成你计算机主目录的名字)。然后,你应该可以输入 python get-pip.py 来运行下载的文件。你需要管理员权限来确保正确安装。
在使用 pip 时,你的计算机在 PyPI(https://pypi.python.org/pypi)上搜索指定的代码包或代码库,将其下载到计算机中并安装。你无需使用浏览器来下载代码库,省去了许多麻烦。
安装工作已经基本完成。最后一步是安装代码编辑器。
1.2.5 安装代码编辑器
在写 Python 代码时需要一个代码编辑器,因为 Python 需要特殊的间距、缩进和字符编码才能正常运行。有多种代码编辑器可供选择。本书的一位作者使用 Sublime。它是免费的,但在你使用一段时间后会建议你象征性地支付一点费用,以支持当下和未来的开发。你可以在 http://www.sublimetext.com 下载 Sublime。另一款完全免费且跨平台的文本编辑器是 Atom(https://atom.io)。
有些人对代码编辑器比较挑剔。你不一定要使用我们推荐的编辑器,但我们建议不要使用 Vim、Vi 或 Emacs,除非你用过这些工具。一些编程的纯粹主义者只用这些工具来写代码(本书的一位作者就是这样),因为他们可以完全用键盘来操纵编辑器。但是,如果你没有任何经验就选择这些编辑器的话,可能会在阅读本书的过程中困难重重,因为你要同时学习两件事情。
一次只学习一件事情,多试用几款编辑器,直到找到可以让你轻松自如写代码的那一款。对于 Python 开发来说,最重要的是要有一款用起来舒服的编辑器,同时支持许多文件类型(能支持 Unicode 和 UTF-8)。
下载选定的编辑器并安装之后,运行程序检查是否安装成功。
1.2.6 安装IPython(可选)
如果你想安装更高级的 Python 解释器,我们推荐安装一个叫 IPython 的库(下载地址: http://ipython.org/install.html)。在附录 F 中我们讲了 IPython 的优点、用例,以及如何安装 IPython。IPython 并不是必需的,但它在 Python 入门阶段十分有用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论