在我们之前使用的示例中,有时需要多次执行相同的工作。我们使用一个计数器来检查代码需要执行多少次。这种技术称为循环。首先,我们将研究 while 语句的循环。
While 循环
While 语句的语法如下
while condition:
statement1
statement2
我们要重用的代码必须在 while 语句下正确缩进。 如果条件为真,它们将被执行。 与 if-else 语句一样,任何非零值都为真。 让我们写一个简单的代码来打印数字 0 到 10
>>> n = 0
>>> while n < 11:
... print(n)
... n += 1
...
0
1
2
3
4
5
6
7
8
9
10
在第一行中我们设置 n = 0,然后在 while 语句中条件是 n < 11,这意味着任何缩进在下面的行都将执行,直到 n 变得相同或大于11。在循环中,我们只是打印 n 的值,然后增加1。
这些代码在现实生活中对我们有什么帮助呢?想想你不得不一个接一个地打开10个灯泡的情况。也许你可以从1到10运行一个循环,对于 n 上的每个值,打开第 n 个灯泡。
斐波那契数列
让我们尝试解决斐波那契数列。 在这个系列中,我们通过将前两个数字相加得到下一个数字。 所以这个系列看起来像 1,1,2,3,5,8,13 …….
#!/usr/bin/env python3
a, b = 0, 1
while b < 100:
print(b)
a, b = b, a + b
输出
$ ./fibonacci1.py
1
1
2
3
5
8
13
21
34
55
89
#!/usr/bin/env python3
a, b = 0, 1
while b < 100:
print(b, end=' ')
a, b = b, a + b
输出
$ ./fibonacci2.py
1 1 2 3 5 8 13 21 34 55 89
Power 系列
乘法表
在这个例子中,我们将打印10个乘法表。
#!/usr/bin/env python3
i = 1
print("-" * 50)
while i < 11:
n = 1
while n <= 10:
print("%4d" % (i * n), end=' ')
n += 1
print()
i += 1
print("-" * 50)
输出
$ ./multiplication.py
--------------------------------------------------
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
--------------------------------------------------