如何学习编写第一个程序,每个程序员都有不同的故事。我还是个孩子时就开始学习编程了,当时我父亲在计算时代的先锋之一——数字设备公司(Digital Equipment Corporation)工作。我使用一台简陋的计算机编写了第一个程序,这台计算机是父亲在家里的地下室组装而成的,它没有机箱,裸露的主板与键盘相连,显示器是裸露的阴极射线管。我编写的这个程序是一款简单的猜数字游戏,其输出类似于下面这样:
I'm thinking of a number! Try to guess the number I'm thinking of: 25 Too low! Guess again: 50 Too high! Guess again: 42 That's it! Would you like to play again? (yes/no) no Thanks for playing!
看到家人玩着我编写的游戏,而且它完全按我预期的方式运行,我心里不知有多满足。此情此景我永远都忘不了。
儿童时期的这种体验一直影响我至今。现在,每当我通过编写程序解决了一个问题时,心里都会感到非常满足。相比于孩提时期,我现在编写的软件满足了更大的需求,但通过编写程序获得的满足感几乎与从前一样。
本书旨在让你尽快学会Python,以便能够编写能正确运行的程序——游戏、数据可视化和Web应用程序,同时掌握让你终身受益的基本编程知识。本书适合任何年龄的读者阅读,它不要求你有任何Python编程经验,甚至不要求你有编程经验。如果你想快速掌握基本的编程知识以便专注于开发感兴趣的项目,并想通过解决有意义的问题来检查你对新学概念的理解程度,那么本书就是为你编写的。本书还可供初中和高中教师用来通过开发项目向学生介绍编程。
本书旨在让你成为优秀的程序员,具体地说,是优秀的Python程序员。通过阅读本书,你将迅速掌握编程概念,打下坚实的基础,并养成良好的习惯。阅读本书后,你就可以开始学习Python高级技术,并能够更轻松地掌握其他编程语言。
在本书的第一部分,你将学习编写Python程序时需要熟悉的基本编程概念,你刚接触几乎任何编程语言时都需要学习这些概念。你将学习各种数据以及在程序中将数据存储到列表和字典中的方式。你将学习如何创建数据集合以及如何高效地遍历这些集合。你将学习使用
while
和
if
语句来检查条件,并在条件满足时执行代码的一部分,而在条件不满足时执行代码的另一部分——这可为自动完成处理提供极大的帮助。
你将学习获取用户输入,让程序能够与用户交互,并在用户没停止输入时保持运行状态。你将探索如何编写函数来让程序的各个部分可重用,这样你编写执行特定任务的代码后,想使用它多少次都可以。然后,你将学习使用类来扩展这种概念以实现更复杂的行为,从而让非常简单的程序也能处理各种不同的情形。你将学习编写妥善处理常见错误的程序。学习这些基本概念后,你就能编写一些简短的程序来解决一些明确的问题。最后,你将向中级编程迈出第一步,学习如何为代码编写测试,以便在进一步改进程序时不用担心可能引入bug。第一部分介绍的知识让你能够开发更大、更复杂的项目。
在第二部分,你将利用在第一部分学到的知识来开发三个项目。你可以根据自己的情况,以最合适的顺序完成这些项目;你也可以选择只完成其中的某些项目。在第一个项目(第12~14章)中,你将创建一个类似于《太空入侵者》的射击游戏。这个游戏名为《外星人入侵》,它包含多个难度不断增加的等级。完成这个项目后,你就能够自己动手开发2D游戏了。
第二个项目(第15~17章)介绍数据可视化。数据科学家的目标是通过各种可视化技术来搞懂海量信息。你将使用通过代码生成的数据集、已经从网络下载下来的数据集以及程序自动下载的数据集。完成这个项目后,你将能够编写能对大型数据集进行筛选的程序,并以可视化方式将筛选出来的数据呈现出来。
在第三个项目(第18~20章)中,你将创建一个名为“学习笔记”的小型Web应用程序。这个项目能够让用户将学到的与特定主题相关的概念记录下来。你将能够分别记录不同的主题,还可以让其他人建立账户并开始记录自己的学习笔记。你还将学习如何部署这个项目,让任何人都能够通过网络访问它,而不管他身处何方。
继续使用Python,还是转而使用其他语言——也许是编程领域较新的语言?我每年都会考虑这个问题。可我依然专注于Python,其中的原因很多。Python是一种效率极高的语言:相比于众多其他的语言,使用Python编写时,程序包含的代码行更少。Python的语法也有助于创建整洁的代码:相比其他语言,使用Python编写的代码更容易阅读、调试和扩展。
大家将Python用于众多方面:编写游戏、创建Web应用程序、解决商业问题以及供各类有趣的公司开发内部工具。Python还在科学领域被大量用于学术研究和应用研究。
我依然使用Python的一个最重要的原因是,Python社区有形形色色充满激情的人。对程序员来说,社区非常重要,因为编程绝非孤独的修行。大多数程序员都需要向解决过类似问题的人寻求建议,经验最为丰富的程序员也不例外。需要有人帮助解决问题时,有一个联系紧密、互帮互助的社区至关重要,而对于像你一样将Python作为第一门语言来学习的人而言,Python社区无疑是坚强的后盾。
Python是一门杰出的语言,值得你去学习,咱们现在就开始吧!