这一课先不写 Python,而是打好四块基础:计算机的组成、语言/代码/程序的区别、编程语言的发展历史,以及编译型和解释型语言。后面很多知识都建立在这些概念上。
1. 计算机的组成
一台计算机由硬件和软件两部分组成。
1.1 硬件
计算机硬件由五大部分组成:
| 部件 | 作用 |
|---|---|
| 运算器 | 负责算术运算(加减乘除)和逻辑运算(比较、判断真假) |
| 控制器 | 计算机的"指挥中心",按程序的要求,协调其他部件按顺序工作 |
| 存储器 | 保存程序和数据,让计算机有"记忆" |
| 输入设备 | 把信息送进计算机,比如键盘、鼠标、麦克风 |
| 输出设备 | 把结果展示出来,比如屏幕、音箱、打印机 |
其中,运算器和控制器合在一起,就是我们常说的 CPU(中央处理器)。
注意:CPU 只能理解和执行二进制(只用 0 和 1 表示信息)的机器指令。这一点后面会反复用到。
存储器里,最常听到的是内存和硬盘,它们的区别要记住:
- 硬盘:长期保存,关机后数据还在;容量大(常见 512 GB、1 TB、2 TB),但读写比内存慢。
- 内存:临时存放正在运行的程序和数据,关机就清空;读写很快,但容量小得多(常见 8 GB、16 GB、32 GB)。
打个比方:硬盘决定你的电脑能装下多少软件,内存决定你的电脑能同时开着多少软件还不卡。
1.2 软件
计算机软件分为两类:
| 类别 | 作用 | 例子 |
|---|---|---|
| 系统软件 | 直接管理硬件,负责分配内存、处理器等资源,并提供文件管理、设备控制、任务调度等基础服务,是其他软件运行的平台 | Windows、macOS、Linux |
| 应用软件 | 完成某个具体任务,满足用户的需求,运行时依赖系统软件 | 浏览器、Word、游戏 |
我们以后用 Python 写的程序,就属于应用软件。
2. 计算机语言、代码、程序
这三个词经常一起出现,但意思不同:
2.1 计算机语言
人和人交流要用语言,人和计算机"交流"、给它下达指令,也需要语言,这就是计算机语言。它和中文、法语一样,有自己严格的规则。
2.2 代码
代码是按照计算机语言的规则写出来的指令,说明要让计算机做什么。也就是说:语言是规则,代码是按照规则写下的一行行指令。
2.3 程序
把代码按一定的顺序和逻辑组织起来,能完成某个任务或功能,就是程序。如果把程序比作一道菜,那每一行代码就是做这道菜的一个步骤。
3. 计算机语言简史
3.1 第一代:机器语言
计算机刚出现的时候,人们只能用机器语言(也叫机器码)来操作它,也就是由 0 和 1 组成的二进制内容。当时输入和修改指令,要靠拨动开关、插拔连线,或者使用打孔的纸带。
机器语言能把硬件性能发挥到极致,但所有操作都要用 0 和 1 来写,编程过程非常繁琐,也很容易出错,对程序员的耐心要求极高。
比如,在常见的 x86 CPU 上,用机器码让计算机算 1 + 1,写出来是这样:
10110000 00000001 00000100 00000001
前 16 位的意思是"把 1 放进寄存器",后 16 位的意思是"再给它加 1"。光看这串数字,几乎不可能看出它在做什么。
3.2 第二代:汇编语言
为了解决机器语言难懂的问题,汇编语言出现了。它用好记的英文缩写(叫"助记符",比如 MOV、ADD)来代替一串串二进制指令。可以说,汇编语言就是机器语言的"人性化翻译",大大降低了编程的门槛,也为后来的高级语言打下了基础。
同样是算 1 + 1,用汇编语言写成:
mov al, 1
add al, 1
第一行把 1 放进名叫 al 的寄存器,第二行再加 1。是不是比上面那串 0 和 1 好懂多了?
注意:汇编语言写完后,仍然要翻译成机器码才能交给 CPU 执行,因为 CPU 只认识二进制指令。
3.3 第三代:高级语言
和机器语言、汇编语言相比,高级语言更接近人类的自然语言:可以用英文单词写程序,里面的符号和算式也和平时的数学写法差不多,而且不用操心大部分底层细节,所以更容易学会。常见的高级语言有 C、C++、Java、PHP、Go、Rust、JavaScript、Python 等。
比如,用 Python 在屏幕上显示 "Hello, world!",只要一行:
print("Hello, world!")
用 Java 做同样的事,要写成这样:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
对比一下就能感觉到,Python 写起来特别简洁,这也是它适合入门的原因之一。
注意:计算机同样不能直接执行高级语言,也要先把它转换成机器语言。
4. 编译型语言与解释型语言
高级语言转换成机器指令的方式不同,可以分成编译型和解释型两类。
4.1 编译型语言
运行之前,先把整个程序一次性翻译成计算机能直接执行的二进制内容,通常会生成一个可执行文件,比如 Windows 上的 .exe 文件。常见的编译型语言有 C、C++、Go、Rust 等。
- 优点:在同一个平台上只需编译一次,以后可以直接运行,执行效率高。
- 缺点:跨平台性差,换个系统往往要重新编译;大型项目编译时间长,开发效率相对低一些。
4.2 解释型语言
运行时由解释器把程序一句一句地翻译成计算机能执行的指令,整个过程通常不生成可执行文件。常见的解释型语言有 Python、PHP、JavaScript 等。
- 优点:跨平台性好,不用编译,写完就能运行,开发和调试都很灵活。
- 缺点:每次运行都要重新解释,执行效率相对低一些。
4.3 二者对比
| 编译型语言 | 解释型语言 | |
|---|---|---|
| 例子 | C、C++、Go、Rust 等 | Python、JavaScript、Ruby 等 |
| 执行过程 | 运行前把整个程序一次性翻译成机器码,生成可执行文件 | 运行时由解释器把代码一句一句翻译成机器码并执行 |
| 生成可执行文件 | 会,编译一次可以反复运行 | 不会,每次运行都要靠解释器翻译 |
| 运行速度 | 快 | 相对慢 |
| 跨平台 | 差,要针对不同平台分别编译 | 好,只要那个平台上有解释器就能运行 |
| 适合场景 | 系统底层、对性能要求高的场景 | 脚本、数据分析、AI 应用、Web 开发等 |
Python 是解释型语言,这正是它在数据分析和 AI 领域这么流行的原因之一:写完马上能运行,改起来方便,试错很快。
这一课你需要记住的
- 硬件有五大部件,运算器 + 控制器 = CPU;CPU 只认识 0 和 1 组成的机器指令。
- 硬盘长期保存、容量大但慢;内存临时存放、速度快但容量小。
- 语言是规则,代码是按规则写的指令,代码组成能完成任务的程序。
- 编程语言经历了机器语言 → 汇编语言 → 高级语言,越来越接近人类的语言。
- 编译型语言先整体翻译、再运行,速度快;解释型语言边翻译边运行,跨平台、开发快。Python 属于解释型。
下一课: 初识 Python,了解它的来历和特点,并在你的电脑上把它装好。