Python 3 非程序员教程/Hello, World
阅读并掌握本章后,你应该知道如何在文本编辑器或 IDLE 中编辑程序,将它们保存到硬盘,并在保存后运行它们。
自古以来,编程教程都以一个名为“Hello, World!”的小程序开始。[1] 所以现在就来吧。
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!"
。请注意,此参数是一组包含在双引号("")中的字符。这通常被称为字符字符串,或简称为字符串。另一个字符串的例子是"Jack and Jill went up a hill"
。函数、圆括号和参数的组合被称为函数调用。
函数及其参数是 python 拥有的语句的一种类型,因此:
print("Hello, World!")
是一个语句的例子。基本上,你可以将语句视为程序中的一行。
现在这些术语可能已经足够多了。
\n
,或打印中的换行,使\n
后面的字符串在新的行上,它也是一个转义字符,以下是一个例子:
print("Hello, World!\nWhat should I do?")
以下是输出:
Hello, World! What should I do?
它可以用来将应该在不同行上的多个字符串放到 1 个 print 语句中,而不是创建多个 print 语句。
即使你没有使用它,print 语句也会使用\n
,例如:
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.666666666666667
|
整数除法 | //
|
14 // 3 == 4
|
余数(模数) | %
|
14 % 3 == 2
|
加法 | +
|
1 + 2 == 3
|
减法 | -
|
4 - 3 == 1
|
请注意,有两种除法方式,一种返回重复小数,另一种可以获得余数和整数。运算顺序与数学相同:
- 括号
()
- 指数
**
- 乘法
*
、除法/
、整数除法//
和余数%
- 加法
+
和减法-
因此,在需要时使用括号来构建你的公式。
在编程中,你经常会做一些复杂的事情,可能在将来不记得你做了什么。当这种情况发生时,程序应该被注释。注释是写给你的和其他人看的笔记,解释正在发生的事情。例如:
# Not quite PI, but a credible simulation
print(22 / 7)
输出为:
3.14285714286
请注意,注释以一个井号开头:#
。注释用于与阅读程序的其他人以及你未来的自己沟通,以说明什么是复杂的。
请注意,任何文本都可以跟在注释之后,当程序运行时,#
后面的文本到该行末尾将被忽略。#
不必位于新行的开头:
# Output PI on the screen
print(22 / 7) # Well, just a good approximation
每一章(最终)都将包含本章中介绍的编程特性的示例。你至少应该浏览一下它们,看看是否理解。如果你不理解,你可能想输入它们并看看会发生什么。玩弄它们,更改它们,看看会发生什么。
Denmark.py
print("Something's rotten in the state of Denmark.")
print(" -- Shakespeare")
输出
Something's rotten in the state of Denmark. -- Shakespeare
School.py
# This is not quite true outside of USA
# and is based on my dim memories of my younger years
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
- 编写一个程序,打印你的全名和生日作为单独的字符串。
- 编写一个程序,展示所有 7 种算术运算的使用。
1. 编写一个程序,打印你的全名和生日作为单独的字符串。
print("Ada Lovelace", "born on", "November 27, 1852")
print("Albert Einstein", "born on", "14 March 1879")
print(("John Smith"), ("born on"), ("14 March 1879"))
2. 编写一个程序,展示所有 7 种算术运算的使用。
print("5**5 = ", 5**5)
print("6*7 = ", 6*7)
print("56/8 = ", 56/8)
print("14//6 = ", 14//6)
print("14%6 = ", 14%6)
print("5+6 = ", 5+6)
print("9-0 = ", 9-0)