首先为什么选择这本书,国内外网上教程一大堆,可能是一方面大家都在说国内外教材自学、编写水平等差异较大,另一方面算是个人复习吧,也想见识一下对比之前学习的内容,这本书有什么出彩的地方。个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习交流。
目录
IDE选择
一般来说,如果你是刚刚开始学习Python,应该使用IDLE界面做开发。它提供了一个用户友好的GUI环境,并能够隐藏一些底层配置细节。为编写脚本,它还提供了一个与平台无关的文本编辑器,而且它是Python系统中一个标准并免费的部分。
从另一面来说,如果你是一个有经验的程序员,你也许觉得这样的方式更惬意一些,简化成在一个窗口使用你选择的文本编辑器,在另一个窗口通过命令行或点击图标启动编写程序。因为开发环境是很主观的选择。一般来说,你最喜欢使用的环境,往往就是最适合你用的环境。
PyCharm、Eclipse目前两款国内教育培训机构较为常用,使用占比较高。
国内工作情况下通常是随主流,哪款人多用什么,主流建议使用PyCharm。
IDE举例:
IDLE
IDLE是一个能够编辑、运行、浏览和调试Python程序的GUI,所有都能够在单独的界面实现。此外,由于IDLE是使用Tkinter GUI工具包开发的Python程序,可以在几乎任何Python平台上运行,包括微软Windows、X Windows(例如,Linux、UNIX以及Unix类平台)以及Mac OS(无论是Classic还是OS X)。对于很多人来说,IDLE代表了一种简单易用的命令行输入的替代方案,并且比点击图标出问题的可能性更小。
IDLE是IDE的一个官方变形,但是其实际上是为了纪念Monty Python的成员Eirc Idle而命名的。
IDLE是Python程序,是用标准库的Tkinter GUI工具集来创建的IDLE GUI。这使IDLE具有可移植性,但是,也意味着你需要让Python支持Tkinter才能使用IDLE。Python的Windows版本默认支持IDLE。
Windows搜索idle,点击即可。
Eclipse和PyDev
Eclipse是一个高级的开源IDE GUI。最初是用来作为Java IDE的,Eclipse在安装了PyDev(或类似的)插件后也能够支持Python开发。Eclipse是一个流行和强大的Python开发工具,它远远超过了IDLE的特性。它包含了对代码完成、语法突出显示、语法分析、重构、调试等功能的支持。其缺点就是需要安装较大的系统,并且对于某些功能可能需要共享扩展)。
下载地址:
https://www.eclipse.org/
https://www.pydev.org/
PyCharm
PyCharm是一款适用于数据科学和Web开发的Python集成开发环境(IDE),旨在提高开发效率并改善用户体验。 它提供了两个版本:专业的Professional Edition和免费的Community Edition,均专注于优化Python代码和数据科学工作流。PyCharm将所需的所有Python工具集中在一处,开箱即用,包括Web开发、数据库、Jupyter以及适用于数据项目的交互式表等,全部集成在一个IDE中,从而保留上下文并减少在工具之间切换的必要性。
下载地址:
https://www.jetbrains.com/pycharm/download/
NetBeans IDE Python版
NetBeans是一款强大的开源开发环境GUI,针对Python开发者支持很多高级功能:代码完成、自动缩进和代码着色、编辑器提示、代码折叠、重构、调试、代码覆盖和测试、项目等等。它可以用来开发CPython和Jython代码。和Eclipse一样,要获得超越IDLE GUI的那些功能,NetBeans也需要一些安装步骤,但是,很多人认为值得这么做。请搜索Web以查找最新的信息和链接。
PythonWin
PythonWin是一个免费的只能在Windows平台使用的免费的Python IDE,它是作为ActiveState的ActivePython版本的一部分来分发的(也可以独立从http://www.python.org上获得)。大致来看,它很像IDLE,并增加了一些有用的Windows特定的扩展。例如,PythonWin支持COM对象。如今,IDLE也许比PythonWin更高级(例如,IDLE的双进程构架使其远离挂起的现象)。尽管如此,PythonWin为Windows开发者提供了IDLE没有的工具。查看http://www.activestate.com以了解更多信息。
还有众多暂不一一举例。
代码调试
简单介绍Python程序员调试代码时候常用的一些策略:
·什么也不做。
这么讲,并不是说Python程序员不要调试自己的代码,但是,当你在一个Python程序中犯错的时候,会得到一条非常有用而容易读懂的出错消息(如果你已经有了一些错误的话,很快会见到这些消息)。如果你已经熟悉自己的代码了,那么,这么做通常就够了:阅读出错消息,并修改标记的行和文件。对于很多人来说,这就是Python中的调试。
但是,对于没有编写过的那些大型系统来说,如银行系统、供应链系统等等,这并不总是理想的做法。
·插入print语句。
可能Python程序员调试自己的代码的主要方式(以及我调试Python代码的方式),就是插入print语句并再次运行。由于Python在修改后立即运行,这通常是获取比出错消息所提供的更多的信息的一种快捷方式。print语句不必很复杂,一条简单的"I am here"或变量值的显示,通常就能够提供你所需的足够的背景信息。只是别忘了,在发布你的代码之前,删除掉或注释掉(如,在前面添加一个#)用来调试的print。
·使用IDE GUI调试器。
通常国内Python代码的开发人员都是基于IDE GUI进行调试的。不同的IDE GUI均包含详细的调试帮助文档。对于没有编写过的较大的系统,以及对于那些想要更详细地跟踪代码的初学者,大多数Python开发GUI都有某种指向点击调试器。IDLE也有一个调试器,但是,它在实际中似乎并不常用。
如PyCharm提供了调试、断点等功能,官方帮助文档https://pycharm.net.cn/debugging-code.html以及提供了一个简单的教学计划,对于初学者很使用。
地址:https://pycharm.net.cn/part-1-debugging-python-code.html
·使用pdb命令行调试器。
用的不多。为了实现最终控制,Python附带了一个名为pdb的源代码调试器,可以作为Python的标准库中的一个模块使用。在pdb中,我们输入命令来一行一行地步进执行,显示变量,设置和清除断点,继续执行到一个断点或错误,等等。通过导入可以交互地启动pdb,或者作为一个顶层脚本启动。不管哪种方式,由于我们可以输入命令来控制会话,它都提供了强大的调试工具。pdb还包含了一个postmortem函数,可以在异常发生后执行它,从而获取发生错误时的信息。官方文档 : https://docs.python.org/3/library/pdb.html#debugger-commands
·其他选项。如果有更具体的调试需求,你可以在开源领域找到其他的工具,包括支持多线程程序、嵌入式代码和进程附件的工具。
关于调试最好的消息是,在Python中检测出并报告错误,而不是默默地传递错误或最总导致系统崩溃。实际上,错误本身是一种定义良好的机制,叫做异常,我们可以捕获并处理它们(更多关于异常的讨论在后续进行)。
当然,犯错并不好玩,但是当进行复杂调试遇到问题时,有Python的调试器支持,所犯的错误不会像没有调试器的情况下那么痛苦。