1.4 编写并运行Python代码
为了完成书中的练习,你需要熟悉一些工具,以编写并运行Python代码。另外,你还需要一个能够备份并给代码撰写文档的系统,这样的话,你就不用担心因为按错一个键而破坏了已经写好的程序[5],而且,你以后回顾早前写过的代码时,也能够轻易地想起这些代码的意思。因为有许多套工具都能实现这些目标,所以你应该先把接下来的这些内容读完,从里面选择一种你最喜欢,而且你有条件去采用的方式(或是同时选择多种方式,把这些方式搭配起来使用)。总的来说,最为关键的就是要决定自己是只想使用在线方式学习,还是愿意采用一台自己能够掌控的设备来学习。前者意味着你需要联网使用相关的工具及服务,后者意味着你需要把相关的工具安装在这台设备上,让自己即便不上网也能在其上使用Python来编程。
我们在不同的情境下会采用不同的书写方式,比如,写电子邮件时使用的风格与结构就与发短信时不同。如果要写的是求职信,那么措辞可能会跟写其他东西有很大区别。另外,我们还会根据要写的内容来选择书写工具,比如,如果需要与合作者及同事共同撰写并编辑文档,则会选用网页版的文档编辑器,但如果要写的是书或论文,则笔者更愿意在自己的计算机上安装一款很好用的纯文本编辑器,并采用这种编辑器来写作。如果要做的是那种不太希望别人轻易改动的文档,例如,合同或其他一些重要的文书,则会选用更为特别的格式,例如PDF。
刚才说的是采用日常语言进行书写时的情况,其实用编程语言写代码也是如此,我们可以用不同的形式编写Python代码,每种形式在书写、测试以及运行方面都有一些区别。其中最主要的写法有两种,一种是把Python代码写在notebook中,另一种是写在一份单独的文件之中。这两种写法都能用来整理、分析并可视化数据,它们各有各的好处,而且也各有各的要求。在这两种写法之间转换可能需要花费一些时间,因此笔者会同时以两种格式设计书中的习题。这样可以让大家灵活地选择用起来最为容易或者你认为最有意义的一种形式,而且还能让大家在这两种写法之间进行对比,并观察在一种形式转换为另一种形式时需要注意哪些问题。下面简单介绍Python代码的两种写法,让大家能够先选出最适合自己的一种:
notebook
notebook是一种交互式的文档,用户可以在浏览器的网页界面中操纵该文档,以便运行某段代码。本书采用Jupyter工具来创建、编辑并执行Python Notebook[6]。用notebook的形式编写Python代码有个很关键的优势在于,它让你能够在同一个地方轻松地撰写、运行并给Python代码添加文档。如果你想使用一种能够以鼠标来操作的编程环境,或者必须在纯网页形式的环境下编程,那么这种形式比较适合你。本地设备之中的Python notebook几乎不用修改就可以拿到网页环境下运行,反过来也是如此。这个特征意味着如果你没有一台自己可以在上面安装软件的计算机,或者你虽然有这样的计算机,但却想在该设备不在手边时也能编写程序,那么以notebook的形式编程要比接下来介绍的另外那种形式更好。
单独的文件
凡是包含Python代码的纯文本文件都可以称为单独的Python文件。这种Python文件只需要用很简单的文本编辑器就能建立,但笔者还是强烈建议你使用一款专门为编程而设计的编辑器,例如,Atom(如何设置这种编辑器,请参见1.5.2节)。使用什么软件撰写并编辑代码可以由你自己决定。但一般来说,这种单独的Python文件必须放在安装了Python编程环境的实体设备(例如,计算机或手机)上运行。这样的设备能够把文件扩展名(也叫作文件后缀名)为.py的文件识别成Python文件。与notebook相比,这种写法听上去似乎有很大限制,但它其实也有一些好处,其中一个好处是你不需要上网就可以运行这些文件,这意味着你不需要把数据上传到云端。当然了,把notebook放在本地环境(也就是自己的设备)之中运行也能享受到这些好处,但你必须花些时间等待相关的软件启动起来,而运行单独的Python文件则不涉及这样的软件,你只需要在命令行界面之中输入命令即可(具体如何输入,马上将会讲到)。如果你要经常运行某份Python脚本,那么这个优势就更加突出了。notebook能够按任意顺序运行多段代码,让大家觉得这种形式用起来很顺手,而写在单独的Python文件之中的代码,则必须从头到尾地运行。与那种用notebook来随意运行代码的方式相比,这种形式能够帮你避免一些错误,让程序总是能够产生可以预知的结果。
当然,你并不是非得在这两种形式中选择一种,然后把另一种抛弃掉,其实许多人都分别使用二者来完成不同的工作。由于notebook支持交互式的界面,而且便于阅读,因此特别适合用来研究或解释数据,而单独的Python文件则更适合用来获取、变换及清洗数据,因为我们可以相当迅速地把多套数据分别交给某份Python文件去处理。其实最根本的问题恐怕还在于你是要在联网的环境中工作,还是要在单机环境中工作。如果你没有一台能够安装Python语言的设备,那就得使用基于云端的notebook。如果有,那你可以在自己的设备中以notebook或纯文本文件的形式书写Python代码(当然也可以同时使用这两种形式)。前面说过,书中的习题会同时以notebook与纯文本文件的形式呈现(前者既能在网页版的开发环境中使用,也能在本机的开发环境中使用),这样大家就可以灵活选择自己喜欢的形式了,而且还能对比这两种形式在执行同一个任务时的差异。