前言
如何学习编写第一个程序,每个程序员都有不同的故事。我在还是个孩子时就开始学习编程了,当时我父亲在计算时代的先锋之一——数字设备公司(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 程序员。通过阅读本书,你将迅速掌握编程概念,打下坚实的基础,并养成良好的习惯。阅读本书后,你就可以开始学习 Python 高级技术,并能够更轻松地掌握其他编程语言。
在本书的第一部分,你将学习编写 Python 程序时需要熟悉的基本编程概念,你在刚接触几乎任何编程语言时都需要学习这些概念。你将学习各种数据以及在程序中存储数据的方式。你将学习如何创建数据集合(如列表和字典),以及如何高效地遍历它们。你将学习使用 while 循环和 if 语句来检查条件,并在满足条件时执行代码的一部分,而在不满足条件时执行代码的另一部分——这可为流程自动化提供极大的帮助。
你将学习获取用户输入,让程序能够与用户交互,并在用户没停止输入时保持运行状态。你将探索如何编写函数来让程序的各个部分可复用,这样在编写好执行特定任务的代码后,可以无限制地多次使用。然后,你将学习使用类来扩展这种概念以实现更复杂的行为,从而让非常简单的程序也能处理各种不同的情形。你将学习编写能妥善处理常见错误的程序。学习这些基本概念后,你将使用学到的知识编写大量越来越复杂的程序。最后,你将向中级编程迈出第一步,学习如何为代码编写测试,以便在进一步改进程序时免于担心可能引入 bug。第一部分介绍的知识让你能够开发更大、更复杂的项目。
在第二部分,你将利用在第一部分学到的知识来开发三个项目。你既可以根据自己的情况,以最合适的顺序完成这些项目,也可以选择只完成其中的某个项目。在第一个项目(第 12~14 章)中,你将创建一个类似于《太空入侵者》的射击游戏,这个游戏名为《外星人入侵》,包含多个难度不断增加的等级。完成这个项目后,你就完全能够自己动手开发 2D 游戏了。就算你无意成为游戏程序员,也应该完成这个项目,因为它以寓教于乐的方式综合应用了第一部分介绍的很多知识点。
第二个项目(第 15~17 章)介绍数据可视化。数据科学家的目标是通过各种可视化技术来理解海量信息。你将使用通过代码生成的数据集、已经从网络下载下来的数据集以及程序自动下载的数据集。完成这个项目后,你将能编写出对大型数据集进行筛选的程序,并以可视化方式将各种数据呈现出来。
在第三个项目(第 18~20 章)中,你将创建一个名为“学习笔记”的小型 Web 应用程序。这个项目能够让用户将学到的与特定主题相关的知识记录下来。你将能够分别记录不同的主题,还可让其他人建立账户并开始记录自己的学习笔记。你还将学习如何部署这个项目,让任何人都能够通过网络访问它,而不管他身处何方。
在线资源
配套视频
扫码观看随书配套视频(由 B 站 UP 主 @林粒粒呀 录制)。
补充材料
要获取以下补充材料,可访问 ituring.cn/book/3038。
- 安装说明:与书中的安装说明相同,在遇到安装问题时,可参阅这些材料。
- 更新:与其他编程语言一样,Python 也是在不断发展变化的。我提供了详尽的更新记录,每当遇到问题时,你都可参阅它看看是否需要调整操作。
- 练习答案:你应该花大量时间独立完成“动手试一试”中的练习。如果卡壳了,无法独立完成,可查看部分练习的答案。
- 数据下载方法:在完成第 16 章中的项目和部分练习时,需要额外下载一些数据集。可参阅这些材料中的网址和步骤进行下载。
- 速查表:英文版速查表可作为主要概念的参考指南,我们还提供了中文精简版速查地图,使用更方便快捷。
- PPT 课件:不论是自学还是老师教学,均可参考本书的配套 PPT 课件。
此外,还可以从这里下载源代码文件、Python 学习路线图,辅助你更好地学习。
为何使用 Python
继续使用 Python,还是转而使用其他语言——也许是编程领域里较新的语言?我每年都会考虑这个问题。可我依然专注于 Python,其中的原因很多。Python 是一种效率极高的语言:相比于众多其他语言,使用 Python 编写的程序包含的代码行更少。Python 的语法也有助于创建整洁的代码:相比于使用其他语言,使用 Python 编写的代码更容易阅读、调试和扩展。
大家将 Python 用于众多方面:编写游戏、创建 Web 应用程序、解决商业问题以及开发内部工具。Python 还在科学领域被大量用于学术研究和应用研究。
我坚持使用 Python 的一个最重要的原因是,Python 社区有形形色色充满激情的人。对程序员来说,社区非常重要,因为编程绝非孤独的修行。大多数程序员需要向解决过类似问题的人寻求建议,经验最为丰富的程序员也不例外。当需要他人帮助解决问题时,有一个联系紧密、互帮互助的社区至关重要,而对于将 Python 作为第一门编程语言的人或从其他语言转向 Python 的人来说,Python 社区无疑是坚强的后盾。
Python 是一门出色的语言,值得你去学习。现在就开始吧!