前言
本书基于 Allen B. Downey 的 Think Python(第 3 版) 改编,使用 Auto 语言教授编程。
本书适合谁
如果你想学习编程,你来对地方了。 Auto 是一门非常适合初学者的编程语言——其简洁、规范的语法让你能专注于学习编程概念,而无需与复杂的语言规则纠缠。
本书主要面向从未学过编程的人,以及有一定其他编程语言经验、想学习 Auto 的人。 如果你已经有丰富的 Auto 经验,可能会觉得前几章节奏太慢。
学习编程的挑战之一是你需要同时学习两种语言:编程语言本身,以及我们用来讨论程序的词汇。 如果你只学习了编程语言,当需要解读错误信息、阅读文档或与其他程序员交流时,很可能会遇到困难。 本书会在每个术语首次出现时给出定义,并在每章末尾提供术语表。
本书目标
本书的第一个目标是教你如何用 Auto 编程。 但学习编程意味着学习一种新的思维方式,所以第二个目标是帮助你像计算机科学家一样思考。 这种思维方式融合了数学、工程学和自然科学的最佳特点。 像数学家一样,计算机科学家使用形式化语言来表达思想——特别是计算。 像工程师一样,他们设计事物,将组件组装成系统并评估各种方案的权衡。 像科学家一样,他们观察复杂系统的行为,提出假设并验证预测。
我力求简洁。 阅读本书所需的脑力越少,你就有更多精力用于编程。 但你不能仅仅通过阅读一本书来学习编程——你必须亲自动手练习。 因此,每章末尾都有练习题,让你应用所学内容。
本书结构
本书每一章都建立在前一章的基础之上,因此你应该按顺序阅读,并在进入下一章之前花时间完成练习。
前六章介绍基本元素,如算术、条件和循环。 它们还介绍了编程中最重要的概念——函数——以及一种强大的使用方式:递归。
后面的章节介绍字符串、列表、字典、元组和其他数据结构。 你还将学习面向对象编程、文件和数据库以及更高级的主题。
本书的目标不是涵盖 Auto 语言的全部内容,而是专注于用最少的语法概念提供最强大的编程能力。
Auto 版本的新内容
本版本将 Think Python 改编为使用 Auto 语言教授编程,这是一门为 AI 时代设计的现代语言。 与原始 Python 版本的主要区别包括:
- 语法:Auto 使用
let声明变量、fn定义函数、{}定义代码块,结构清晰一致。 - 类型系统:Auto 是具有类型推断的静态类型语言,有助于尽早发现错误。
- 转译:Auto 代码可以使用
a2p、a2r、a2ts和a2c等工具转译为 Python、Rust、TypeScript 和 C。 - 双代码块:本书中的每个代码示例都同时展示 Auto 源代码和
a2p转译器生成的等效 Python 代码,让你清楚地看到 Auto 与你可能已熟悉的语言之间的映射关系。
概念内容——问题解决策略、调试技巧和编程词汇——保持不变。 目标是帮助你学会像计算机科学家一样思考,以 Auto 为载体。
入门指南
要运行本书中的程序,你需要 Auto 工具链。
安装 Auto:从 <https://auto.dev> 下载工具链,按照你所在平台的安装说明操作。
验证安装:打开终端运行
autoc --version确认安装成功。运行程序:将 Auto 代码写入
.at扩展名的文件中,然后编译运行:autoc your_file.at转译为 Python:使用
a2p转译器将 Auto 代码转换为 Python:a2p your_file.at
本书中每个代码示例都包含 Auto 源代码(.at)和预期的 Python 输出(main.expected.py),让你直接看到 Auto 与 Python 之间的对应关系。
值得思考的话
学习一门新编程语言的唯一方法就是用它来编写程序。—— Dennis Ritchie
每个人都知道调试程序的难度是编写程序的两倍。所以如果你在编写程序时就已经用尽了所有聪明才智,你又怎么可能调试它呢?—— Brian Kernighan