11.3 小结

在本章中,你学习了:如何使用模块unittest 中的工具来为函数和类编写测试;如何编写继承unittest.TestCase 的类,以及如何编写测试方法,以核实函数和类的行为符合预期;如何使用方法setUp() 来根据类高效地创建实例并设置其属性,以便在类的所有测试方法中使用。

测试是很多初学者不熟悉的主题。作为初学者,并非必须为你尝试的所有项目编写测试。然而参与工作量较大的项目时,你应该对自己所编写函数和类的重要行为进行测试。这样你就能够更加确定自己所做的工作不会破坏项目的其他部分,从而自由地改进既有代码。如果不小心破坏了原来的功能,你马上就会知道,而且能够轻松地修复问题。比起等到不满意的用户报告bug后再采取措施,在测试未通过时采取措施要容易得多。

如果你在项目中包含了初步测试,将得到其他程序员的尊敬。他们不仅能够更得心应手地使用你编写的代码,也更愿意与你合作开发项目。如果要跟其他程序员开发的项目共享代码,就必须证明你编写的代码通过了既有测试,通常还需要为你添加的新行为编写测试。

请通过多开展测试来熟悉代码测试过程。对于自己编写的函数和类,请编写针对其重要行为的测试。不过不要在项目早期试图编写全覆盖的测试用例,除非有充分的理由。

第二部分 项目

祝贺你!你现在已经对Python有足够的认识,可以开始开发有意思的交互式项目了。通过动手开发项目,你能够学到新技能,并更深入理解第一部分介绍的概念。

第二部分包含三个不同类型的项目,你可以选择完成其中的任意或全部项目,完成的顺序无关紧要。下面简要描述每个项目,帮助你决定先去完成哪个。

外星人入侵:使用Python开发游戏

在项目“外星人入侵”(第12章~第14章)中,你将使用Pygame包来开发一款2D游戏。它在玩家每消灭一群向下移动的外星人后,将玩家提高一个等级。等级越高,游戏的节奏越快,难度越大。完成这个项目后,你将获得自己动手使用Pygame开发2D游戏所需的技能。

数据可视化

“数据可视化”项目始于第15章,你将在这一章学习如何使用Matplotlib和Plotly来生成数据,以及根据这些数据创建实用而漂亮的图表。第16章介绍如何从网上获取数据,并将其提供给可视化包以创建天气图和世界地震活动散点图。最后,第17章介绍如何编写自动下载数据并对其进行可视化的程序。学习可视化让你能够探索数据挖掘领域,这是当前在全球都非常热门的技能。

Web应用程序

在“Web应用程序”项目(第18章~第20章)中,你将使用Django包来创建一个简单的Web应用程序,让用户能够记录任意数量的学习主题。用户将通过指定用户名和密码来创建账户,输入主题,并编写条目来记录学习的内容。你还将学习如何部署应用程序,让任何人都能够访问它。

完成这个项目后,你将能够自己动手创建简单的Web应用程序,并能够深入学习其他有关如何使用Django开发应用程序的资料。

项目1 外星人入侵

第 12 章 武装飞船

11.3 小结 - 图1  我们来开发一个名为《外星人入侵》的游戏吧!为此将使用Pygame,这是一组功能强大而有趣的模块,可用于管理图形、动画乃至声音,让你能够更轻松地开发复杂的游戏。通过使用Pygame来处理在屏幕上绘制图像等任务,可将重点放在程序的高级逻辑上。
在本章中,你将安装Pygame,再创建一艘能够根据用户输入左右移动和射击的飞船。在接下来的两章,你将创建一群作为射杀目标的外星人,并改进该游戏:限制可供玩家使用的飞船数,并且添加记分牌。
在开发这款游戏的过程中,你还将学习如何管理包含多个文件的项目。你将重构很多代码并管理文件的内容,以确保项目组织有序以及提高效率。
开发游戏是趣学语言的理想方式。看别人玩你编写的游戏能获得满足感,而编写简单的游戏有助于你明白专业级游戏是怎么编写出来的。在阅读本章的过程中,请动手输入并运行代码,以明白各个代码块对整个游戏所做的贡献,并且尝试不同的值和设置,以对如何改进游戏的交互性有更深入的认识。
注意  游戏《外星人入侵》将包含很多不同的文件,因此请在系统中新建一个名为alien_invasion的文件夹,并将该项目的所有文件都存储到该文件夹中,这样相关的import 语句才能正确工作。
另外,如果你熟悉版本控制,可能想将其用于这个项目;如果你没有使用过版本控制,请参阅附录D的概述。