什么是编程?

尽可能简单的讲,编程是编写代码,命令计算机去完成某项任务的艺术。这里讲的某项任务,可以是简单的两数相加,或是像把飞船送入轨道这样的复杂任务!

一个程序里面,最小的组成部分被称作语句(statement)——代表了对计算机做出的一条指令。

当你完成了自己的程序后,编译器会把你写的代码转换为机器码——计算机语言的最底层。机器码指示中央处理器工作(central processing unit),或者叫做CPU,这里面包含一些诸如加载某个值或是做数学运算的步骤。

如果你曾经听过某人说:“我编译了我的程序”,那代表他们已经把代码转换成了机器码。

为什么不直接写机器码呢?原因很显然,程序码具有可读性。下面比较了Python版的程序和其对应的机器码:

Python代码

Python

1

2

3

print "Hello, World!"

...

"Hello, World!"

对应的机器码

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

c7 3c 2a 3c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c

28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c

2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b

2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c

3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28

5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a

2b 2a 00 00 01 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 64 48 65 6c 6c 6f 2c 20 57

6f 72 6c 64 21 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

...

"Hello, World!"

很明显为什么你不会想要直接编写机器码了。但是,确实有一些人会去写机器码——萝卜白菜各有所爱嘛!

上面我们忽略了一个小问题。Python是一种解释型语言;你并不会像上面我们暗示的那样,把它直接编译成为机器码。

实际上是这样的,Python使用一个叫做解释器的东西。解释器是另外一个程序,把代码编译成叫做二进制码的东西,然后再程序运行的时候再转换成机器码。你等下会学到更多和解释器有关的内容。

当你最终运行程序的时候,你刚编译的那些机器码会被加载到内存中,CPU会读取它并执行程序。

然而,在刚开始学习使用Python编程的时候,你并不需要完全理解编译器的内部工作原理,但是你必须确保你已经安装了Python。