书名:从零开始学Python(第2版)
ISBN:978-7-115-50675-7
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 [美]约翰•保罗•穆勒(John Paul Mueller)
译 武传海
责任编辑 胡俊英
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
John Paul Mueller
Beginning Programming with Python For Dummies, 2nd Edition
Copyright©2018 by John Wiley & Sons, Inc.
All right reserved. This translation published under license.
Authorized translation from the English language edition published by John Wiley & Sons, Inc.
本书中文简体字版由John Wiley & Sons公司授权人民邮电出版社出版,专有出版权属于人民邮电出版社。
版权所有,侵权必究。
Python是一种高级程序设计语言,近年来,它得到了越来越多的技术人士的认可和追捧。其应用领域也非常广泛,涉及数据分析、自然语言处理、机器学习、科学计算、推荐系统构建等各个方面,为开发者提供了高效、灵活的编程体验。
本书面向Python初学者,帮助读者快速、有效地把握Python编程的技巧。全书共分5个部分,由浅入深地向读者呈现了Python必学的各大知识要点。无论是简单的Python安装,还是基本的编程语法,抑或是典型的问题处理,本书都给出了详细、直观的编程示例,以便读者能够精准把握要点。
约翰·保罗·穆勒(John Paul Mueller)是一位自由作家兼技术编辑。他是一位高产的作家,至今已经创作了104本图书,撰写了600多篇文章,涉及的主题广泛,从网络到人工智能,从数据库管理再到程序编写。在最近的一些书中,他还讨论了数据科学、机器学习、算法等,并且讲解这些内容时全都选用了Python。同时,他拥有十分出色的技术编辑能力,帮助70多位作者修改过书稿。他还为各种杂志提供技术编辑服务,做各种技术咨询,以及编写认证考试内容。你可以去他的博客阅读各种文章,也可以通过John@JohnMuellerBooks.com联系到他,当然你也可以去他的个人网站了解更多信息。
谨以此书献给那些每天花时间给我写信的读者们。每天早上,我都会收到各种各样的邮件——有些是请求,有些是抱怨,还有一些只是道声谢谢。所有这些电子邮件都在鼓励和督促着我,让我的书和我自己都变得更好。
谢谢你们!
首先,感谢我的妻子Rebecca,虽然现在她已故去,但她的精神长存于我创作的每本书中,体现在每个页面的每个字眼上。她相信我,就算全世界都不再相信我,她依然会坚定不移地选择相信我。
其次,感谢Russ Mullen,他为本书做了大量的技术编辑工作,让本书内容更准确,也更有深度。Russ一直为我推送各种有用的URL链接,帮我开拓思维和想法。Russ认真审阅本书的内容,测试了书中代码,并提供了非常宝贵的意见。Russ使用的计算机设备和我的不同,为我指出一些我之前没有注意到的问题。
再次,感谢我的经纪人Matt Wagner,他首先帮我拿到了本书写作合同,并且替我想到了大多数作者都考虑不到的细节。对于他的付出,我总是满怀感激。知道有人在真心帮你是件很幸福的事。
有很多人阅读了这本书的部分或全部内容,帮助我调整了相关方法、测试示例代码,并提供许多读者希望得到的资料。在本书的出版过程中,这些志愿者帮了大忙。借此机会,特别感谢Eva Beattie、Glenn A. Russell、Col Onyebuche、Emanuel Jonas、Michael Sasseen、Osvaldo Téllez Almirall、Thomas Zinckgraf,他们提供了很多有用的资料,阅读了整本书,无私地投身到这个项目中。
最后,感谢Katie Mohr、Susan Christophersen,以及其他帮助出版本书的编辑人员和制作人员。
就能否胜任其目标领域的工作来说,Python无疑是一个正面的例子。这可不是我的一面之词:在最受欢迎的编程语言投票中,Python排在第5位。Python的迷人之处在于,你的确可以在一个平台上编写应用程序,然后在需要支持的其他平台上使用它。相比于其他允诺与平台无关的编程语言,Python说到做到,真正实现了平台无关性。
Python强调代码的可读性和语法的简洁性。同样一个应用程序,选用Python编写所需要的代码行数要比其他编程语言更少。你还可以使用符合你自身需求的编码风格,因为Python同时支持函数式、命令式、面向对象和过程式编码风格(详细内容见第3章)。另外,由于Python独特的工作方式,你会发现它在各种非程序员群体中也有着广泛的应用。本书第2版面向的读者相当广泛,即便你不是专业的编程人员,也可以通过本书的学习把Python迅速掌握起来,并且将其应用到实际工作中。
有些人把Python看作一门脚本语言,但它远不止于此(第18章将向你介绍一些依赖Python才能正常工作的活动)。不过,Python确实适合用于教育和其他一些无法使用其他编程语言实现的用途。事实上,本书使用的是Jupyter Notebook,它依赖于斯坦福大学计算机科学家Donald Knuth所提出的高度可读性的文学编程范式(详细内容见第4章)。借助这种编程范式,你编写的代码看起来像是可读性很强的报告,几乎每个人都能轻松地理解它。
本书第2版讲的是有关如何快速学会用Python编程的内容。通过阅读本书,你可以快速地学会Python,并高效地运用它来完成你真正的工作。与其他大部分讲解这个主题的书籍不同,本书一开始就向你介绍了Python和其他语言的不同点,以及Python如何帮助你在编程之外的工作中做一些有用的工作。因此,从一开始你就可以了解到自己需要做什么,使用实用案例,并且花费大量时间去做实际有用的工作。当然,从本书中你也可以学到有关如何把Python安装到自己所用系统的知识。
当你把Python正确安装到自己所用的系统上之后,就可以从基础知识学起,然后逐步深入地学习有关Python的各种知识。在学完本书全部内容,并且亲手做过书中给出的各个示例之后,你就能使用Python写出一些简单的程序,做一些简单的工作,比如发送电子邮件。虽然通过本书的学习,你还无法成为Python专家,但至少你可以使用Python来解决自身工作中一些问题。为了帮助大家更轻松地理解相关概念,本书使用如下约定。
需要你动手输入的文本采用粗体显示,但有个例外:在操作步骤中,要输入的文本并非粗体显示,因为每个操作步骤都是用粗体显示的。
对于输入文本中以斜体形式显示的部分,你需要根据自己的实际情况选用相应的值进行替换。比如,当你看到“输入你的名字后按Enter键”时,你得用实际的名字来代替“你的名字”。
网页地址和程序代码采用等线体。如果你使用一台联网设备阅读本书的电子版,通过单击正文中出现的网址,即可跳转到相应网站。
当需要输入命令序列时,你可以看到它们由一个特定的箭头分隔,比如,文件新文件。这种情况下,你要先进入“文件”菜单,而后在其中选择“新文件”菜单项,最终你会创建出一个新文件。
写作之前,我已经对你们的情况做了一些假设,这听上去难以置信,毕竟,我还没见过你们呢!虽然大多数假设都是愚蠢的,但我还是得做一些假设,以便为本书提供一个写作的起点。
熟悉你要用的平台很重要,因为本书没有提供任何有关这方面的指导。第2章讲了各种平台下的Python安装指南;第4章讲了如何安装Anaconda,包括Jupyter Notebook这个集成开发环境(IDE)。为了最大限度地向你提供关于Python的信息,本书不讨论与特定平台有关的问题。在开始学习这本书之前,你需要知道如何安装应用程序、使用应用程序,以及所用平台的基本用法。
这本书还假设你可以在互联网上找到相关信息。网上有大量的在线参考资料,好好利用它们有利于增加你自身的知识。然而,只有当你真正发现并使用它们时,这些额外的资源才能发挥作用。
阅读本书内容时,你会在页边空白处看到各种图标,里面介绍了各种有趣的知识(或许不是,这要视情况而定)。下面介绍一下各种图标的含义。
这是一些提示内容,有助于你节省时间或者不需要你付出太多精力来完成一些工作。我会在这个部分向你介绍一些帮你节省时间的技巧,或者向你推荐一些学习资源,以便帮你最大限度地利用好Python。
我不想让自己听起来像一个愤怒的家长或疯子,但你应该避免做任何带有警告标志的事情。不然,你会发现你的程序只会让用户感到困惑,最终导致他们拒绝使用它。
在这个图标之下,我会向你介绍一些高级的技巧或技术。你可能会觉得,这些内容读起来有点太枯燥了,但是它们可能包含了你运行某个程序所需要的解决方法。当然,只要你愿意,你完全可以跳过这些内容。
如果你没能从特定的章节或部分获得对自己有用的知识,那请你着重留意这个图标下的内容,其中通常包含了一些有用的知识和一些必不可少的过程。只有掌握它们,你才能成功编写出Python程序。
这本书并不是你学习Python编程的终点,相反它只是一个起点。我为你提供了丰富的在线内容,这些内容让这本书更灵活、更能满足你的需要。这样一来,当我收到你的电子邮件时,我就可以为你解答一些问题,并且告诉你有关Python或相关库的更新会给本书所讲的内容带来什么影响。实际上,你可以访问下面所有这些很酷的内容。
备忘单:你还记得自己上学时为应对考试而打的小抄吗?你做过吗?备忘单有点像小抄。它向你提供了一些注意事项,以帮助你更好地使用Python完成所做的任务,并且这些内容并非所有开发者都了解。你可以通过访问Dummies网站并搜索“Begin Programming With Python For Dummies Cheat Sheet”来找到本书的备忘单,其中包含了非常棒的信息,比如开发者使用Python时易犯的十大错误,以及一些开发者容易用错的Python语法等。
更新:有时现实情况会发生一些变化。而我在写这本书时也不大可能 会预见这些变化。在过去,这仅仅意味着这本书过时了,用处不大了,但是现在,你可以访问Dummies网站,搜索本书书名来查找有关本书的更新。
除了这些更新之外,你也可以访问作者的博客,在里面我回答了很多读者提出的问题,还对书中涉及的技术做了进一步讲解。若感兴趣,可以认真读一读。
是时候,开启我们的Python编程之旅了!如果你是一个零基础的编程新手,你应该从第1章学起,循序渐进,尽可能多地吸收书中讲解的各种知识。
如果你是个急脾气,想尽快把Python用起来,你可以直接跳到第2章,从Python安装的相关知识学起。如果你已经安装好了Python,你可以直接从第3章学起,但我还是建议你要认真看一看第2章的内容,这样你就可以了解我为写作本书而做的一些假设。
如果你对Python已经有了一些了解,你可以直接跳到第4章进行学习,这可以为你节省不少时间。要想进入Jupyter Notebook,必须安装Anaconda,这是本书使用的IDE。不然,你将无法轻松地使用下载好的源代码。Anaconda是免费的,不需要你花一分钱。
如果你已经安装好了Jupyter Notebook,并且知道了如何使用它,你可以直接学习第6章。遇到问题时,你总是可以随时回到前面的章节进行学习。不过,学习时最重要的是先理解每个示例的工作原理,然后再转到下一个示例学习。每个示例都包含重要的内容,如果一开始就跳过太多的内容,你很有可能会错过一些非常重要的内容。
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。
本书提供配套源代码,要获得该配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。
如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。
“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。
异步社区
微信服务号
内容概要 |
---|
与计算机交流 |
在Linux、Mac、Windows系统下安装Python |
与Python交互 |
安装并使用Anaconda编写第一个程序 |
使用Anaconda做一些有用的工作 |
本章概要 |
---|
与计算机交流 |
编写程序和计算机交流 |
理解程序及其编写 |
选用Python的理由 |
和计算机对话听起来有点像科幻电影的场景,比如在《星际迷航》中,企业号的船员们就经常和计算机进行交谈,计算机还经常跟他们顶嘴。随着苹果Siri、亚马逊Echo和其他交互软件的崛起,也许你不会再觉得这样的对话有什么不可思议了。
向计算机询问信息是一回事,而向计算机提供指令又是另一回事。本章主要讲解你为何想向计算机下指令,以及你会从中得到什么好处。你还会发现在与计算机进行这种交流时需要用到一种特殊的语言,以及我们为什么要使用Python来完成它。通过本章的学习,你会认识到,编程只是我们和计算机进行交流的一种方式,它与其他一些我们用来和计算机进行交流的方式类似。
和计算机交谈看起来可能很奇怪,但是这是必需的,因为目前计算机还无法直接读取我们的想法。即使计算机能够读取你的想法,它还是得和你交流、沟通。如果你不和计算机交互信息,就什么事也做不了。
上面这些活动都是你和计算机进行交流的例子。计算机进一步和其他机器或人员进行交流以解决你提出的请求,这是对“要结果必须有交流”这个基本思想的简单扩展。
大多数情况下,交流是在你几乎看不见的情况下进行的,你认真想想就会明白这一点。例如,当你进入某个在线聊天室后,你可能会认为自己在和另一个人交流。但其实,你是在和你的计算机进行交流,你的计算机通过聊天室(无论它由什么组成)与另一个人的计算机进行交流,而另一个人的计算机正在和那个人进行交流。图1-1描述了真实的情况。
请注意图1-1中间位置的“云朵”,它可能包含任何东西,但是你知道它至少包含一些运行着其他应用程序的计算机。这些计算机让你能够和朋友在线聊天。现在,使用聊天程序和别人聊天变得很容易,其中涉及的各种复杂的事情都是在后台进行的,你看起来是在直接和朋友聊天,其背后复杂的过程对你是透明的。
图1-1 对你而言,和计算机交流可能是透明的,但只要你认真想想就会明白这一点,例如聊天室
我们和计算机的交流是通过各种应用程序实现的。比如,你可以使用一个应用程序来回复电子邮件,使用另一个来购物,再使用另一个来创建PPT。应用程序为我们提供了一种向计算机表达我们自身想法的手段,让计算机能够理解我们的意图,同时还定义了一系列工具,它们使用特定方式把“交流”变为数据。那些用来描述PPT内容的数据和你用来为妈妈买礼物的数据是不一样的。对于不同的任务,我们查看、使用、理解相应数据的方法都是不同的,所以我们必须使用不同的应用程序和相应的数据打交道,并且要选用一种计算机和我们都理解的方式。
今天,各种应用程序不计其数,它们几乎能够满足你所有常规的需求。事实上,你还可能会遇到一些应用程序,它们的用途你甚至压根都没想到过。这些年来,程序员们一直忙于编写各种应用程序,出现了数以百万的应用程序,因此,你再想发明某种通过应用程序和计算机交互的新方法,那实在是太难了。答案归结于数据本身以及你想要的交互方式。有些数据不常见,程序员注意不到它们,或者你需要的数据格式比较特殊,目前还没有任何应用程序对它提供支持,在这种情况下,你就无法用计算机处理这些数据,除非你自己专门编写一个应用程序来处理它。
下面几节将从使用某种特殊的方式处理独特数据的角度描述应用程序。例如,你可能访问了一个视频数据库,但是现有的访问方法对你没什么用。数据是一样的,但是你的访问需求是特殊的,这时,你可能想创建一个应用程序来处理数据和你的需求。
简单地说,程序就是你用来完成某项任务的一系列步骤。比如,你可能会使用如下步骤来烤制面包:
1.从冰箱取出面包和黄油;
2. 打开面包袋,取出两片面包;
3. 从烤面包机上拿下盖子;
4. 把每片面包放入烤制槽内;
5. 推下拉杆,开始烤面包;
6. 等待烤制完成;
7. 从烤面包机上取出面包;
8. 把烤好的面包放入盘子;
9. 在面包上抹黄油。
你使用的实际步骤可能与这里的不同,但你不太可能在把烤面包片放入烤面包机前涂上黄油。当然,在烤面包之前,你确实需要先去掉面包的包装纸(把面包带着包装纸等东西一起放入烤面包机中将会产生不可预料的后果)。大多数人从来没有考虑过烤面包的步骤。不过,即便你没有考虑过,也会使用上面这样的步骤。
如果没有步骤,计算机什么事也做不了。你必须告诉计算机要执行的步骤、执行它们的顺序,以及可能导致失败的例外规则。所有这些信息(以及更多)都包含在应用程序中。简而言之,应用程序是一个事先写好的书面步骤,用来告诉计算机该做什么,什么时候做,以及如何做。我们一生都在使用各种各样的做事步骤,我们真正需要做的就是将这些已经拥有的知识应用到计算机需要了解的特定任务上。
我上小学时,老师让我们写一篇关于烤面包的论文。我们交完论文之后,她带来了烤面包机和面包。我们写的每篇论文她都会认真阅读并进行验证。结果我们每个人写的步骤都没有达到预期效果,它们大都带来了一些让人啼笑皆非的结果。在我写的烤制步骤中,我忘了告诉老师要把面包从包装中拿出来,于是她很忠实地把面包、包装纸等一起塞进烤面包机里。这堂课给我带来深深的触动。写下详细的步骤可能会十分困难,我们清楚地知道自己要做什么,所以经常会漏掉一些步骤——因为我们经常假定其他人也知道我们想做什么。
生活中的许多事都是围绕着程序步骤展开的。想想飞行员在操控飞机起飞前所使用的检查清单。如果操作步骤不对,飞机就可能会坠毁。要写出好的程序步骤虽然需要花一些时间来学习,但这是切实可行的。为了得到一个正确的操作步骤,你可能需要多尝试几次,但最终你都会创建出一个步骤清单。只把程序步骤写下来是不够的,我们还需要找一些对这项任务不熟悉的人就程序步骤的正确性进行测试。在使用计算机时,计算机将是你最好的测试对象。
在前面举的例子中,我提到了小学老师,计算机就像是一位小学老师。当你编写某个应用程序时,你其实是在编写完成某个工作的一系列步骤,计算机按照这些步骤执行就能完成我们指定给它的工作。如果你漏掉了某个步骤,计算机就无法给出你所期望的结果。计算机不了解你的想法,也不知道你要让它做哪些事情。计算机唯一知道的就是你提供给它的特定执行步骤,它只是按照这些步骤按部就班地执行而已。
最终,人们都会习惯于你编写的做事步骤,他们会对你步骤中的缺陷进行自动补全,或者记下你遗漏的东西。换句话说,人们会自动纠正你步骤中存在的问题。
当你开始编写计算机程序时,你会感到沮丧,因为计算机只会读取你提供的指令并严格按照这些指令来做相应的工作,十分机械、死板。例如,如果你告诉计算机某个数值应该等于5,那么计算机就会去找一个正好等于5的值。而当我们人在看到4.9时,可能会觉得这个值已经足够好了,但是计算机不这么看,4.9就是4.9,它并不等于5。简而言之,计算机只是一台冰冷的机器,它不灵活,没有直觉,还缺乏想象力。当你为计算机编写程序时,计算机总是严格按照你的要求执行相应操作,它绝对不会修改你给出的执行步骤,也不会揣测你的真实意图。
前面我们也说过,应用程序提供了一些方法,借助这些方法,计算机能够理解我们人类的想法。为了实现这个目标,应用程序要依赖一个或多个程序步骤,告诉计算机如何执行与数据操作及表示相关的任务。你在屏幕上看到的文字来自于文字处理程序,为了让你看到它们,计算机需要先在磁盘上搜索它们,而后将它们转换成你能理解的形式,最后再呈现给你。在接下来的几节中,我们会进一步讲解应用程序的各种细节。
人类语言复杂又难懂,即使像使用了人工智能技术的苹果公司的Siri和亚马逊公司的Alexa这类应用程序也很难完全听懂你在说什么。经过多年的发展,从一定程度上说,计算机初步具备了接收人类语言的能力,它们能够把人类语言转换为数据,并从中提取特定的单词,转换为相应的命令,但是总体上看,计算机理解人类语言的能力还十分初级,人们在这方面取得的研究成果也并不理想。人类语言本身复杂又难懂,这一点我们可以从律师的工作得到印证。当你阅读法律术语时,你会感觉它们怪怪的,像是胡言乱语。其实,这些法律术语的目标是尽可能精确地表述人们的思想和观念,并最大限度地消除歧义。律师的工作就是为了实现这个目标,但是这往往很难办到,因为人类语言本身就是不精确的。
通过前面几部分内容的学习,我们可以知道,计算机永远不可能借助人类语言来理解我们编写的程序步骤。计算机总是从字面上理解事物,如果你使用人类语言编写应用程序,那最终你就无法得到预期结果。正因如此,我们才要使用一些特殊的语言(称为“编程语言”)来跟计算机进行交流。对于使用这些特殊语言编写的程序,我们人类和计算机都可以理解。
其实,计算机什么语言都不会说。它们使用二进制代码翻转内部开关以及执行数学计算。计算机也不认字母,它们只认数字。一个特殊的应用程序会把你使用某种计算机专用语言编写的程序转换成二进制代码。有关计算机在二进制层面的工作原理不在本书的讨论范围之内,不了解相关的底层细节并不会影响你对本书的学习,大家大可不必担心。但这里有一点需要大家明白,那就是计算机其实根本不懂什么语言,它只懂数学和数字。
编写应用程序时,记住它的目的是很重要的。应用程序可以帮助人类以一种特定的方式和计算机进行交流。每个应用程序处理的都是某种类型的数据,这些数据作为输入数据进入应用程序中,而后被存储、操作并输出,这样我们通过这个应用程序获得预期的结果。不论应用程序是一款游戏还是电子表格,它们的基本思想都是一样的。计算机处理人们提供它的数据,然后输出人们期望的结果。
当你创建某个应用程序时,你其实是在提供一种与计算机对话的新方法。你创建的新方法能够使其他人以新的方式查看数据。人与计算机之间的交流应该足够简单,这样人们就能把注意力从应用程序本身上移开,专注于数据的交互。想一想你过去使用过的那些应用程序,好的应用程序就是那些可以让你专注于与数据本身进行交互的应用程序。例如,一个游戏应用程序如果可以让你专注于拯救地球或驾驶飞船,而不是让你专注于做这些事情的程序本身,那么我们就会把这款游戏称为是沉浸式的。
学习创建应用程序的最佳方法之一是借鉴其他人创建应用程序的方式。认真研究别人编写的应用程序,写下你喜欢和不喜欢的地方,这个方法很有用,你可以使用这种方法确定你要创建的应用程序的外观和工作方式。在研究别人编写的应用程序时,你可以问自己如下一些问题:
作为创建应用程序的一部分,专业开发人员还会问很多其他的问题,但上面这些问题都是很好的入门问题,它们有助于你把应用程序视为帮助人类和计算机进行交流的手段。如果你曾经对自己使用过的某个应用程序感到沮丧,那么你就已经知道,创建应用程序时不问这些问题会给其他人带来什么样的感受。不管你要创建什么应用程序,方便用户和计算机交流是我们首先要考虑的。
在为你做的事情编写程序步骤时,你还要考虑自己的做事方式。进行时,最好每次做一步,然后写下你能想到的与这步相关的一切事情。当你做完整件事之后,还要请别人试试你写的步骤,看看它们是不是正确。你可能会惊讶地发现,即使自己付出了很多努力,一些步骤还是被轻易地忘掉了。
世界上最糟糕的应用程序通常是由这样的程序员写出来的:他不知道应用程序要做什么,不知道应用程序的特殊之处在哪,不知道处理的对象是什么,也不知道用户是谁。当你决定创建某个应用程序时,请一定要弄清创建它的原因以及希望它实现什么。制订计划会让整个编程过程变得轻松有趣。编写应用程序时,你可以一次只完成一个小目标,这样循序渐进,直到你写好整个应用程序,然后把它给你的朋友看,所有人都会觉得你创建的这个应用程序很酷。
现在有很多编程语言可以使用。事实上,一个学生即使在大学里学上一整个学期的计算机语言,还是学不完所有的计算机语言(我在大学时就是这么做的)。你可能会觉得这么多语言对程序员来说应该足够了,编写程序时从中选择一种就够了,但他们还是不满足,他们还在不断地发明更多的语言。
程序员不断地创造新语言是有充分理由的。每一种编程语言都有其独特之处以及最擅长的方面。此外,随着计算机技术的发展,编程语言也处在不断发展中。因为创建应用程序完全是为了实现与计算机的高效交流,许多程序员都懂多种编程语言,这样他们可以根据要做的任务选择最合适的语言使用,比如使用某种语言可以更好地从数据库中获取数据,而使用另一种语言则可以创建出更棒的用户界面元素。
与其他各种编程语言一样,Python在某些方面做得非常好,开始使用Python之前,你需要了解Python这门语言的优势在哪里。使用Python你能做出很多酷炫的事,这很可能会让你感到惊讶不已。了解一门编程语言的优点和缺点有助于你更好地使用它,还有助于你避免因选错编程语言而带来的挫折。下面的内容将帮助你了解Python,以及判断某个项目是否适合使用Python来做。
大多数编程语言都是针对特定目标而创建的。这些目标有助于定义语言的特征,并且帮助你搞清楚可以用它来做什么。人们在创建应用程序时有相互竞争的目标和需要,所以实际上没有任何方法可以帮助我们创建出一种能够实现一切目标的编程语言。说到Python这门编程语言,其主要目标是帮助程序员提高编程的工作效率。基于这一点,下面列出了Python的一些优点,它们会让你在创建某个应用程序时首先考虑使用Python。
尽管Python是一种流行的语言,但它并非总是最流行的语言,这取决于你要看哪个站点的比较数据。事实上,它目前在TIOBE等网站上排名第五,TIOBE是一个跟踪使用统计数据(以及其他内容)的组织。不过,如果你查看IEEE Spectrum等网站,你会发现Python在他们看来是居于第一位的语言。而在Tech Rapidly网站十大流行编程语言的排行中,Python位居第三。
如果你学习编程语言只是为了获得一份工作,那么Python将会是一个不错的选择,但Java、C/C++,或者C#或许是更好的选择,这取决于你想要得到什么样的工作。Visual Basic也是一个很好的选择,不过它目前没有Python那么流行。选择编程语言时,一定要选择一种你喜欢并且能够满足应用程序开发需要的语言,同时也要根据你想要实现的目标进行选择。Python在2007年和2010年都是年度最佳语言,在2011年2月最流行的编程语言排名中位居第四位。所以,如果你只是为了找一份工作,那Python的确是一个不错的选择,但不一定是最好的选择。不过,你可能会惊讶地发现,现在许多大学都使用Python来讲解编程,并且Python已经成为教学领域中最流行的语言。
事实上,你可以使用任何编程语言来编写任何类型的应用程序。但是工作中如果你选错了编程语言,那么完成工作的整个过程将是非常缓慢、容易出错且充满bug,你绝对不喜欢这样——但你仍然可以把工作完成。当然,我们大多数人都希望避免这种可怕的痛苦经历,所以你需要了解一下人们通常都使用Python来创建什么样的应用程序。下面列出了Python最常见的一些用途(当然人们还使用Python来做其他事)。
Python的确很擅长做分内之事。这其实就是许多大型组织使用Python做某些应用程序开发的原因所在。你需要一种编程语言,它受到这些大型组织的良好支持,因为这些组织往往会花钱让这种语言变得更好。表1-1列出了使用Python最多的大型组织。
表1-1 使用Python的大型组织
厂商 |
应用程序类型 |
---|---|
厂商 |
应用程序类型 |
爱丽丝教育软件—卡内基梅隆大学 |
教育软件 |
费米实验室 |
科学应用程序 |
Go.com |
基于浏览器的应用程序 |
谷歌 |
搜索引擎 |
工业光魔 |
几乎所有编程需要 |
劳伦斯利福摩尔国家实验室 |
科学应用程序 |
美国国家航空航天局(NASA) |
科学应用程序 |
纽约证券交易所 |
基于浏览器的应用程序 |
红帽子 |
Linux安装工具 |
雅虎 |
雅虎邮件系统 |
YouTube |
图形引擎 |
Zope – Digital Creations |
出版应用程序 |
上面这些只是众多使用Python的组织中的一小部分,你可以在Python官网找到一个更完整的组织列表。成功案例很多,列表不足以把它们全部列出来,因此官方以分类的方式来更好地组织它。
现在你的计算机上就有可能跑着一个用Python编写的应用程序,只是你没有注意到而已。Python在当今市场上有着广泛的应用,使用Python开发的应用程序包括从控制台运行的实用程序到完整的CAD/CAM套件。有些应用程序运行在移动设备上,有些应用程序运行在企业级大型服务器上。简言之,你可以使用Python编写任何应用程序,它确实有助于你查看其他人的工作。你可以在网上找到很多地方,这些地方列出了大量使用Python编写的应用程序。
作为一名Python程序员,你还需要了解那些可以让你的工作变得更加轻松的Python开发工具。在编写程序(用来告诉计算机要做什么)的过程中,开发工具可以为我们提供一定程度的自动化。你使用的开发工具越多,意味着你在开发应用程序的过程中投入的时间越少。开发人员喜欢分享他们最喜欢的工具列表,你可以在Python官网上找到一个有着良好分类的工具列表。
当然,本章也描述了许多工具,比如NumPy和SciPy(两个科学库)。在本书的其他章节我们还会介绍其他一些工具,请确保你已经把自己喜欢的工具下载下来并且安装好了。
把一种语言和另一种语言进行比较有些不妥,因为语言的选择不只是一个可量化的科学事实,同时也与个人的口味和偏好有关。为了避开语言狂热者的攻击,在开始讲解如下内容之前,我先做个重要说明,那就是我也用过很多编程语言,并且发现它们之间有一些层面上是相似的。这个世界上没有十全十美的语言,只有最适合特定应用的语言。基于这个想法,下面我们将Python和其他编程语言大致进行比较(你可以进一步了解Python与其他各种语言的比较情况)。
许多人说C#语言是微软简单模仿Java的产物。尽管如此,相比于Java,C#确实有一些优点(和缺点)。C#背后的主要意图(无可争议)是创建一种比C/ C++更好的语言——一种更容易学习和使用的语言。不过,我们要在这里将C#和Python进行比较。与C#相比,Python有以下优点:
多年来,程序员一直在寻找一种编程语言,使用这种编程语言,你只需编写一次应用程序,即可让它运行在多种平台之下。Java就是一种跨平台的编程语言,为此Java需要使用一些技巧,相关内容你会在本书后面了解到。而现在,你只需要知道:Java可以成功地运行在各种平台之下,其他各种编程语言都在试图模仿Java这一特性(模仿的成功程度各不相同)。尽管如此,与Java相比,Python还是拥有如下一些优势:
Perl最初是“实用报表提取语言”(Practical Extraction and Report Language)的首字母缩写。现在,人们简单地称这种语言称为Perl,并且一直沿用下去。不过,Perl语言本身仍然表现出明显的发明初衷,它很擅长从数据库中获取数据并以报告的形式呈现数据。当然,现在Perl已经扩展了很多功能——你可以使用它来编写各种应用程序(我甚至还用它编写了一个Web服务程序)。相比于Perl,Python拥有如下优点:
在数据处理领域,数据科学家通常很难在R和Python之间做出选择,因为这两种语言都擅长做统计分析和各种图表(数据科学家通过这些图表来了解数据模式)。这两种语言都是开源的,并且支持大量平台。不过,相比于Python,R语言的专用性更强,更多用在学术研究领域。和R语言相比,Python拥有如下优势:
本章概要 |
---|
下载Python |
安装Python |
找到并使用Python |
确保Python安装正常 |
一般来说,创建应用程序时,你需要用到其他应用程序,除非你编写的是底层应用,并且选用机器代码来编写应用程序,这其实非常困难,即便编程高手也不想这么做。如果你想使用Python编程语言来编写应用程序,那么你就需要用到一些应用程序,这些应用程序不仅帮助你使用Python编写程序代码,还能根据你的需要提供一些有用的帮助信息,让你编写的代码正常运行。本章我们将讲解下载并安装Python应用程序的方法,了解如何找到已经安装好的Python应用程序,方便你使用它们,此外,我们还要对安装进行测试,学习Python的工作方式。
每个平台(计算机硬件和操作系统软件的组合)在运行应用程序时都遵循一些特定规则。Python应用程序向你隐藏这些细节。你使用Python编写的代码可以运行在Python支持的各种平台上,Python应用程序把这些代码转换为相应平台可理解的代码。但是,为了进行转换,你必须安装一个适用于特定平台的Python版本。Python支持如下平台(可能还有其他平台):
AIX(Advanced IBM UNIX);
Android;
BeOS;
BSD(Berkeley Software Distribution)/FreeBSD;
HP-UX(Hewlett-Packard UNIX);
IBM i(Application System 400或AS/400、iSeries以及System i);
iOS(iPhone Operating System);
Linux;
Mac OS X(OS预装);
MS-DOS(Microsoft Disk Operating System);
MorphOS;
OS/2(Operating System 2);
OS/390(Operating System 390)与z/OS;
PalmOS;
PlayStation;
Psion;
QNX;
RISC OS(原Acorn);
Series 60;
Solaris;
VMS(Virtual Memory System);
Windows 32位(XP及更高版本);
Windows 64位;
Windows CE/Pocket PC。
原来Python可以支持这么多平台!本书示例在Windows、Mac OS X、Linux平台下测试正常。当然,这些示例也可以在其他平台上正常运行,因为它们不依赖于任何特定平台的代码。如果你在其他平台(非Windows、Mac或Linux平台)上也正常运行了这些示例,请发电子邮件(John@JohnMuellerBooks.com)告知我。写作本书之时,Python最新版本为3.6.2。你可以在作者的博客中找到有关Python的更新内容,也可以找到书中一些问题的答案。
为了下载到符合你所用平台的Python版本,你要先前往Python官网。下载区域位于页面底部,你需要向下滚动页面,如图2-1所示,里面包含针对Windows、Mac OS X、Linux平台的下载链接,这些链接为你提供了默认设置,本书会采用默认设置。页面左侧特定于平台的链接显示了可供你选择的Python配置,你可以根据自身需求灵活选择。比如,如果你对Python默认包中提供的编辑器不满意,想使用更高级的编辑器,你可以选择相应的配置方案,它会为你提供一个。
图2-1 在下载页面中有多个Python版本可供下载
如果你所用的平台不在这个页面中,请前往Python官网找一找,你会看到适用于各种平台的Python安装包,如图2-2所示。其中很多Python安装包是由志愿者维护的,与创建在Windows、Mac OS X、Linux平台下运行的Python版本的人不是一拨人。当你遇到安装问题时,请一定联系这些人,他们知道如何帮你在所用平台上安装好Python。
图2-2 志愿者维护着运行在各种平台下的Python版本
下载好Python之后,接下来就要把它安装到你的系统中。下载文件中包含你需要的一切,如下:
Python解释器;
帮助文件(文档);
命令行工具;
集成开发环境(IDLE);
pip(Python包管理工具);
卸载程序(并非所有平台都需要它)。
本书假定你用的是Python默认设置,你可以在Python官网找到它们。如果你使用的是其他版本(非3.6.2版本),书中的某些例子可能无法像预期那样工作。接下来,我们会讲如何在常见的3种平台上安装Python(Windows、Mac OS X、Linux),本书所有示例都可以在这3种平台下正常运行。
在Windows平台上安装Python的过程和安装其他应用程序是一样的。首先,你要找到下载好的文件,这样你才能启动安装程序。下面的安装过程适用于所有Windows平台,也适用于32位的Python和64位的Python。
1.找到下载好的Python安装文件。
Python安装文件的名称有好几个,python-3.6.2.exe针对的是32位系统,而python-3.6.2-amd64.exe针对的则是64位系统。文件名称中包含版本号,请注意本书使用的是3.6.2版本。
2.双击安装文件。
双击Python安装文件时,你可能会看到一个文件打开安全警告对话框,询问你是否想运行这个文件。单击“是”,运行Python安装程序,然后你会看到一个Python安装对话窗口,如图2-3所示。你下载的Python安装程序版本不同,看到的这个对话框也会有所不同。
3.选择用户安装选项(本书使用默认设置,针对所有用户安装)。
使用个性化安装会让我们在多用户环境下更容易管理系统。某些情况下,选择个性化安装也会减少弹出安全警告对话框的次数。
图2-3 Python安装程序的初始界面,询问哪些用户可以访问Python
4.选择“Add Python 3.6 to PATH”。
选择这个选项后,你可以从硬盘的任何位置访问Python。如果不选这个选项,以后你必须手动把Python添加到环境变量中。
5.单击“Click Customize Installation”。
安装程序会询问你要安装哪些特性到你的系统中,如图2-4所示。这里我们全选,不过,你在安装Python时,可能会发现自己其实并不需要安装所有的特性。
图2-4 选择要安装的特性
6.单击“Next”。
你会看到“Advanced Options”对话框,如图2-5所示。请注意,默认状态下,“Install for all users”仍然处于未选中状态,前面我们已经要求这样做了,这里还要把这个选项选中。安装程序还要求我们指定Python的安装位置,使用默认路径会为你日后节省大量的时间和精力。不过,你可以根据需要把Python安装到任意位置。
把安装位置指定为“\Program Files”或“\Program Files (x86)”文件夹会有问题,原因有二:首先,这两个路径名称中都包含空格,这使得我们很难从应用程序内部访问;其次,访问这两个文件夹一般都需要管理员权限,如果你把Python安装到这两个文件夹中,你得经常和Windows的UAC(用户账户控制)功能做斗争。
图2-5 指定Python的安装位置
7.选择“Install for All Users”,确保安装程序允许每个人访问Python。
请注意,选择这个选项后,“Precompile Standard Library”会被自动选中,若不是,请确保该选项处于选中状态。
8.如果需要,请输入目标安装位置。
本书采用的安装位置为:C:\Python36。
9.单击“Install”。
你会看到一个显示安装进度的窗口。安装过程中,可能会弹出用户账户控制对话框,询问你是否想进行安装,单击“是”,安装过程继续往下进行。安装完毕后,会弹出安装完成对话框。
10.单击“Close”按钮。
到这里,Python就安装好了。
在Mac平台下,Python已经预装在其中了。不过,所安装的Python版本一般会比较旧,或者至多是你安装Mac系统时的Python版本。本书示例在这些旧版本的Python上也可以正常运行。毕竟我们的目标并不是为了测试Python编程技术的局限性的,因此这些旧版本的Python一般来说也是够用的。
OS X Leopard 10.5使用的是Python 2.5.1,这是一个非常旧的版本,它不能直接访问IDLE应用程序。如此一来,书中的某些示例可能无法得到正确运行。经过测试,本书示例代码在OS X 10.12中能够正常运行,所使用的版本是Python 2.7.10,本书示例代码在这个版本下运行时不会出现问题。在更新的OS X和Python下,本书示例代码同样能够正常运行,但是运行过程中,你可能会看到一些有关库使用和兼容性问题的警告信息。
根据实际需求,你可能需要更新Mac系统中的Python版本。为此,你必须安装GCC工具,这样Python才能访问自己需要的底层资源。下面我们要讲一下在Mac OS X 10.6或更高版本下安装新版Python的方法。
1.在Python官网,你可以看到有关最新版Python的信息,如图2-1所示。
2.单击“Mac OS X 64-bit/32-bit installer”链接。
此时,开始自动下载Python磁盘映像。整个下载过程需要几分钟,请保持耐心。大多数浏览器允许我们查看下载进度,这样你可以轻松地了解下载耗费的时间。
3.在下载文件夹中,双击python-3.6.2-macosx10.6.pkg。
你会看到一个欢迎对话框,告诉你与Python相关的信息。
4.单击“Continue”按钮3次。
安装程序显示有关Python的最新信息、许可信息(浏览完许可信息后,单击“Agree”按钮)和安装位置对话框。
5.单击“Install”按钮。
安装程序可能要求你输入管理员密码。如需要,请在对话框中输入管理员名称和密码,而后单击“OK”。你会看到一个安装Python的对话框,其中内容会随着安装进程发生变化,通过它你可以知道安装程序正在安装Python的哪一部分。
安装完成后,你会看到一个安装成功对话框。
6.单击“Close”按钮。
到这里,Python就安装好了,此时你可以关闭Python磁盘映像,并将其从系统中删除。
有些版本的Linux已经预装好了Python环境。比如,在SUSE、Red Hat、Yellow Dog、Fedora Core、CentOS等基于红帽程序包管理器(Red Hat Package Manager,RPM)的Linux中,Python已经被安装到你的系统之中,你无需再做什么。
在不同版本的Linux系统下,Python的版本会有所不同,有些系统并不包含IDLE(交互式开发环境)应用程序。如果你安装的是Python 2.5.1(或更早)这类旧版本,你可能需要安装更新版本的Python才能访问IDLE。本书中的许多练习都需要用到IDLE。
其实,在Linux下安装Python的方法有两种,第一种方法是在所有Linux发行版中都能使用,而第二种方法需要具备一定条件才能使用。下面我们讲解这两种方法。
标准Linux安装方法适用于在任何Linux系统上安装Python。不过,使用这种方法时,需要你在终端窗口中输入一些命令,并且根据你所用Linux版本的不同,需要用到的命令也有所不同。除了下面这些我们要讲的步骤之外,你还可以在Python官方提供的提示文档中找到一些有用的帮助信息。
1.在Python官网,你会看到与Python最新版本相关的信息,如图2-1所示。
2.根据你用的Linux版本,单击相应链接:
(1)Gzipped source tarball(适用于所有Linux系统);
(2)XZ compressed source tarball(压缩率更高且下载速度更快)。
3.若询问你想打开还是保存这个文件,选择“保存”。
这时,Python源文件开始下载。源文件下载需要1~2分钟,请保持耐心。
4.双击下载好的文件。
打开Archive Manager窗口,对文件解压缩。文件解压缩完毕后,在Archive Manager窗口中,你会看到Python 3.6.2文件夹。
5.双击Python 3.6.2文件夹。
Archive Manager会把文件解压缩到home文件夹下的Python 3.6.2子文件夹中。
6.打开终端窗口。
打开一个终端窗口。如果你之前从来没有在你的系统中构建过任何软件,你必须先安装build essential、SQLite、bzip2,不然无法安装Python。如果你已经安装好这些工具,请直接跳到第10步。
7.在终端窗口中,输入“sudo apt-get install build-essential”,并按Enter键。
在Linux中构建包时,需要安装Build Essential支持。
8.输入“sudo apt-get install libsqlite3-dev”,并按Enter键。
在Linux中安装SQLite支持,以便Python操作数据库。
9.输入“sudo apt-get install libbz2-dev”,并按Enter键。
在Linux中安装bzip2支持,以便Python解压缩文档。
10.在终端窗口中,输入“CD Python 3.6.2”,并按Enter键。
把目录切换到Python 3.6.2文件夹。
11.输入“./confgure”,并按Enter键。
脚本先检查系统的构建类型,再根据你所用的系统执行一系列的任务。由于待检查的项目很多,所以这个过程需要1~2分钟才能完成。
12.输入“make”,并按Enter键。
Linux执行make脚本,开始创建Python应用程序。整个make过程可能需要1分多钟,具体取决于你所用计算机的处理速度。
13.输入“sudo make altinstall”,并按Enter键。
系统可能会要求你输入管理员密码。输入你的管理员密码,并按Enter键。这时,系统开始执行大量的任务,并最终把Python安装到你的计算机中。
上面讲的“标准Linux安装”方法适用于所有版本的Linux系统。此外,有一些基于Debian的Linux系统(比如Ubuntu 12.x及更高版本)还提供了更简便的图形界面安装方法。使用这种安装方法时,需要用到管理员组(sudo)密码,事先把它准备好能够帮你节省很多时间。下面我们以Ubuntu系统为例,讲解如何使用图形界面安装Python,这个安装方法也适用于其他类似的Linux系统。
1.打开Ubuntu Software Center文件夹(在其他平台下,这个文件夹可能被命名为Synaptics)。
你会看到一个列表,里面列出了一些最流行的软件,供用户下载安装。
2.从软件下拉列表中,选择“Developer Tools”(Development)。
你会看到一个开发者工具列表,其中包括Python。
3.双击Python 3.6.2项。
Ubuntu Software Center给出了有关Python 3.6.2的细节,并帮助你安装它。
4.单击“Install”。
Ubuntu开始安装Python,你会看到一个进度条,显示下载和安装状态。安装完成后,Install按钮会变成Remove按钮。
5.关闭Ubuntu Software Center文件夹。
你会看到一个Python图标被添加到桌面上。这时,Python已经安装好了。
在系统中安装好Python之后,我们还需要知道如何找到它。为此,在某些方面,Python已经尽力为我们做好了一切,比如安装期间把Python路径添加到机器路径中。尽管如此,我们还是得知道如何访问机器中已经安装好的Python。
关于屏幕截图
在本书学习过程中,开始时,我们会通过IDLE或Python命令行工具来使用Python。随后,我们会使用Anaconda,它为我们与Python交互提供了更容易使用的方法。IDLE或Anaconda这两个图形环境(GUI)的名称在这3个平台上是完全相同的,在展现形式上,你看不出它们之间有什么明显的差异。其实,它们之间的差异非常微小,你在阅读本书时,完全可以忽略它们。有鉴于此,本书使用了大量Windows截屏——为了保持一致性,你所看到的截屏都是从Windows系统中截取的。
Python命令行工具在这3个平台上的工作方式也完全相同。与IDLE或Anaconda相比,其展现形式在不同平台下可能会有一些不同,因为每个平台的Shell会略有不同。不过,你在一个平台上键入的命令和另一个平台是完全相同的。输出也是一样。看屏幕截图时,请着重看截图的内容,不要过多关注Shell展现形式的差异。
在Windows平台下安装好Python之后,你会在“开始”菜单中看到一个新文件夹,里面包含着我们安装好的Python应用程序。通过“开始 – 所有程序 – Python 3.6”,你可以访问Python应用程序。在使用Python编写新应用程序时,我们经常会使用IDLE(Python GUI)和Python 3.6(命令行工具)。(第4章我们会讲如何安装、配置以及使用Anaconda来创建你的第一个应用程序,但是我们仍然要知道该如何使用Python IDLE和命令行工具。)
在“开始”菜单的Python 3.6文件夹下,单击IDLE(Python GUI)会打开一个图形交互环境,如图2-6所示。当你打开这个环境时,IDLE会自动显示一些信息,通过这些信息,你可以知道自己打开的程序是否正确。这些信息中包含了Python版本号(这里是Python 3.6.2),以及当前你正使用什么样的系统来运行Python。
图2-6 在Windows平台下使用IDLE图形环境
在“开始”菜单的Python 3.6文件夹下,单击“Python 3.6”,打开Python命令行窗口,如图2-7所示。在这个命令行窗口中会自动显示有关Python的版本和主机平台的信息。
图2-7 Python命令行窗口,速度快并且灵活
第3种访问Python的方法是直接打开一个命令行窗口,在其中输入“Python”后,按Enter键。相比于Python环境,使用这种方法我们能够获得更多的灵活性,可以自动加载各个项目,或者在一个更高的权限环境中(在这个环境中你能获得更多的安全权限)运行Python。Python为我们提供了大量的命令行选项,在命令行窗口中,输入“Python/?”,按Enter键,你会看到有哪些命令行选项可以使用,如图2-8所示。本书不会使用这些选项,所以你无需担心记不住它们,但是你要知道有如此多的选项存在,这会很有用。
图2-8 标准命令行为我们提供了很大的灵活性,你可以通过各种选项改变Python的工作方式
在使用第3种方法运行Python时,你必须把Python路径放入到Windows的path变量中。正因如此,前面我们在Windows平台下安装Python时才需要把“Add Python 3.6 to PATH”这个项选中。若安装时,你未选中该项,则需要你手动进行添加。你可以使用这种方法添加其他Python环境变量,比如:
PYTHONSTARTUP;
PYTHONPATH;
PYTHONHOME;
PYTHONCASEOK;
PYTHONIOENCODING;
PYTHONFAULTHANDLER;
PYTHONHASHSEED。
你不会在本书中见到这些环境变量。如果你想了解更多有关这些环境变量的内容,请访问Python官网。
如果你使用的是Mac,那你可能不需要再安装Python了,因为它已经被安装到Mac系统中了。不过,你仍然需要知道在哪里找到Python。接下来,我们讲解如何访问在不同安装方式下安装的Python。
大多数情况下,默认安装在OS X中的Python都没有对应的Python文件夹。你必须通过“应用程序 – 实用工具 – 终端”来打开终端窗口。然后,输入“Python”,按Enter键,访问Python命令行窗口,你会看到一个类似于如图2-7所示的界面。和Windows一样(见上一节内容),在终端窗口中打开Python之后,你可以使用各种选项来改变Python的工作方式。
在Mac系统中安装好Python之后,打开“应用程序”(Applications)文件夹。在这个文件夹中,你可以看到一个名为Python 3.6的文件夹,它包含如下内容:
Extras文件夹;
IDLE应用程序(GUI开发环境);
Python Launcher(交互式命令开发);
Update Sh. . . command。
双击IDLE应用程序,将打开一个图形交互环境,类似于图2-6。虽然呈现方式略有不同,但窗口内容是一样的。双击Python Launcher,打开一个命令行环境,类似于图2-7。这个环境使用所有Python默认设置,为我们提供一个标准的运行环境。
即使你在Mac上安装了新版本的Python,你也不必非得使用默认环境。你仍然可以打开终端窗口访问Python命令行开关。不过,当你从Mac终端应用程序访问Python时,你需要确保自己访问的不是默认安装的Python。请务必把/usr/local/bin/Python3.6添加到在shell搜索路径中。
在Linux系统中安装好Python之后,你可以在home文件夹中找到一个名为Python 3.6的子文件夹。Python 3.6在Linux系统中的物理位置一般是/usr/local/bin/Python3.6文件夹。这个信息很重要,因为你可能需要手动调整系统路径。注意:在终端窗口中访问Python 3.6.2时,你需要输入的是Python 3.6,而非Python。
安装好Python之后,你需要测试一下,检查安装是否成功。这点很重要,因为只有安装成功了,Python才能正常工作,才能产生你想要的结果。当然,测试时,我们需要编写一个Python应用。首先,我们打开IDLE,其中显示了一些有关Python版本和主机信息的内容(见图2-6)。
为了检查Python是否正常工作,输入print(“This is my first Python program.”),并按Enter键。如图2-9所示,Python会把你刚才输入的内容显示出来。print()命令用来把你告诉它的内容显示在屏幕上。这个命令在本书中的使用频率很高,多用来显示Python执行任务的结果,它是你最常用的命令之一。
图2-9 print()命令用来把你告诉它的内容显示在屏幕上
请注意,在IDLE中代码的不同部分是以不同颜色显示的,这更方便你识别和理解代码。这些代码颜色表示你做对了。在图2-9中出现了4种颜色(在本书纸质版中你看不到这些颜色)。
紫色:表示你输入的是一个命令。
绿色:表示要传递给命令的内容。
蓝色:表示一个命令的输出。
黑色:表示非命令实体。
现在,你知道Python可以正常工作了,因为你能向它发送命令,并且它也能对你发送的命令进行响应。接下来,我们再看一个很有趣的命令,输入3 + 4,按回车键。Python会输出7,如图2-10所示。请注意,3 + 4显示为黑色,因为它并不是命令。不过,7显示为蓝色,因为它是输出结果。
图2-10 在交互环境中Python直接支持数学
如果你想退出IDLE会话,请输入quit(),并按下Enter键。这时,IDLE会显示一个询问对话框,问你是否真的想关闭它,如图2-11所示,单击“OK”按钮,即可结束会话。
图2-11 IDLE弹出一个询问对话框,问你是否真的想结束会话
请注意,在quit()命令中,圆括号是必须有的,print()命令也是一样。所有命令都必须有圆括号,这是它们的标志。不过,你不需要为quit()命令传入任何参数,也就是说,要保持圆括号中是空白的。