你应该知道的内容

读完并掌握这一章后,你应该知道如何在文本编辑器或 IDLE 中编辑程序,如何将它们保存到硬盘,并在保存后运行它们。

打印输出

从编程教程开始,几乎所有教程都会以一个叫做“Hello, World!”的小程序作为起点。所以,这里就是它:

print("Hello, World!")

如果你是在命令行中运行程序,可以通过文本编辑器输入这个程序,将其保存为 hello.py,然后运行命令:

python3 hello.py

否则,你可以进入 IDLE,创建一个新窗口,按照“创建和运行程序”部分的步骤来编写程序。

运行该程序时,输出如下:

Hello, World!

我并不会每次都说这个,但当我展示一个程序时,我建议你自己输入并运行它,而不是复制粘贴。通常我自己输入程序时,能更好地理解和吸收学习内容,你可能也会有同样的体会!

现在,这里有一个更复杂的程序:

print("Jack and Jill went up a hill")
print("to fetch a pail of water;")
print("Jack fell down, and broke his crown,")
print("and Jill came tumbling after.")

当你运行这个程序时,输出会是:

Jack and Jill went up a hill
to fetch a pail of water;
Jack fell down, and broke his crown,
and Jill came tumbling after.

当计算机运行这个程序时,它首先看到这一行:

print("Jack and Jill went up a hill")

因此,计算机输出:

Jack and Jill went up a hill

然后,计算机会继续执行下一行:

print("to fetch a pail of water;")

计算机会输出:

to fetch a pail of water;

计算机继续执行每一行,直到程序结束。

术语

现在可能是时候给你一些解释了——并且介绍一些编程术语。

上面我们使用的是一个叫做 print 的函数。函数的名称(print)后面跟着括号,括号中可以包含零个或多个参数。所以,在这个例子中:

print("Hello, World!")

只有一个参数,即 "Hello, World!"。注意,这个参数是由双引号包围的一组字符。这个字符组通常被称为字符串(string)。另一个字符串的例子是 "Jack and Jill went up a hill"。函数和其参数的组合叫做“函数调用”(function call)。

函数及其参数是 Python 中的一种语句,因此:

print("Hello, World!")

就是一个语句。基本上,你可以把语句理解为程序中的一行代码。

现在这些术语可能已经足够了。

打印中的 \n

\n,即换行符,用来使得紧跟在 \n 后的字符串出现在新的一行,它也是一个转义字符,下面是一个例子:

print("Hello, World!\nWhat should I do?")

输出是:

Hello, World!
What should I do?

它可以用来将多个本应分成不同行的字符串放入一个 print 语句中,而不必使用多个 print 语句。

即使你不显式地使用 \nprint 语句也会“默默地”使用它。例如:

print("Hello, World!")

实际上等同于:

print("Hello, World!\n")

虽然手动添加与不添加有所不同,但 Python 会在字符串的末尾自动加上换行符。

表达式

这里是另一个程序:

print("2 + 2 is", 2 + 2)
print("3 * 4 is", 3 * 4)
print("100 - 1 is", 100 - 1)
print("(33 + 2) / 5 + 11.5 is", (33 + 2) / 5 + 11.5)

运行这个程序时,输出是:

2 + 2 is 4
3 * 4 is 12
100 - 1 is 99
(33 + 2) / 5 + 11.5 is 18.5

正如你所看到的,Python 能把你的几千美元的计算机变成一个五美元的计算器。

算术表达式

在这个例子中,print 函数后跟着两个参数,且每个参数之间用逗号隔开。比如在程序的第一行:

print("2 + 2 is", 2 + 2)

第一个参数是字符串 "2 + 2 is",第二个参数是算术表达式 2 + 2,它是表达式的一种类型。

需要注意的是,字符串会按原样打印(不包括双引号),而表达式会被计算,或者说它会被转换为其实际值。

Python 支持七种基本的数字运算:

操作 符号 示例
幂运算(指数) ** 5 ** 2 == 25
乘法 * 2 * 3 == 6
除法 / 14 / 3 == 4.666666
整数除法 // 14 // 3 == 4
取余(模运算) % 14 % 3 == 2
加法 + 1 + 2 == 3
减法 - 4 - 3 == 1

请注意,除法有两种方式,一种返回循环小数,另一种可以返回余数和商。运算的优先级与数学中的顺序相同:

  1. 括号 ()
  2. 幂运算 **
  3. 乘法 *、除法 /、整数除法 //、取余 %
  4. 加法 + 和减法 -

因此,在需要时使用括号来组织公式。

Python 中的注释

在编程过程中,很多时候你会做一些复杂的操作,以后可能记不住当时是怎么做的。当发生这种情况时,程序应该加上注释。注释是给你自己和其他程序员看的说明,解释程序发生了什么。例如:

# 不完全是 PI,但这是一个合理的模拟
print(22 / 7)

输出是:

3.14285714286

注意,注释以 # 开头,注释用于与你自己和其他读程序的人沟通,尤其是帮助你未来理解代码。

需要注意的是,注释后的任何文本都不会被程序执行,当程序运行时,# 后面的内容会被忽略。注释不一定要在新的一行开始:

# 输出 PI
print(22 / 7)  # 其实只是一个不错的近似值

示例

每章(最终)都会包含示例程序,展示本章介绍的编程特性。你至少应该浏览它们,看看是否理解它们。如果不理解,你可以尝试自己输入并观察结果。动手修改它们,看看会发生什么。

Denmark.py

print("Something's rotten in the state of Denmark.")
print("                -- Shakespeare")

输出:

Something's rotten in the state of Denmark.
                -- Shakespeare

School.py

# 这在美国以外的地方不完全准确
# 这只是我年轻时的模糊记忆
print("Firstish Grade")
print("1 + 1 =", 1 + 1)
print("2 + 4 =", 2 + 4)
print("5 - 2 =", 5 - 2)
print()
print("Thirdish Grade")
print("243 - 23 =", 243 - 23)
print("12 * 4 =", 12 * 4)
print("12 / 3 =", 12 / 3)
print("13 / 3 =", 13 // 3, "R", 13 % 3)
print()
print("Junior High")
print("123.56 - 62.12 =", 123.56 - 62.12)
print("(4 + 3) * 2 =", (4 + 3) * 2)
print("4 + 3 * 2 =", 4 + 3 * 2)
print("3 ** 2 =", 3 ** 2)

输出:

Firstish Grade
1 + 1 = 2
2 + 4 = 6
5 - 2 = 3

Thirdish Grade
243 - 23 = 220
12 * 4 = 48
12 /

3 = 4 13 / 3 = 4 R 1

Junior High 123.56 - 62.12 = 61.44 (4 + 3) * 2 = 14 4 + 3 * 2 = 10 3 ** 2 = 9

 
 

最后修改: 2025年02月2日 星期日 11:49