11.1 嵌套循环

    还记得第 8 章“动手试一试”中你写的乘法表程序吗?如果不考虑用户输入部分,代码会是这样:

    multiplier = 5
    for i in range (1, 11):
    print i, "x", multiplier, "=", i * multiplier

    如果想一次打印 3 个乘法表呢?这种事情正是嵌套循环最擅长的。嵌套循环就是一个循环出现在另一个循环里。对于外循环的每次迭代,内循环都要完成它的所有迭代。

    要打印 3 个乘法表,只需要把原来的循环(打印一个乘法表)包含在一个外循环中(运行 3 次)。这样,程序就会打印 3 个乘法表而不只是一个。代码清单 11-1 显示了相应的代码。

    代码清单 11-1 一次打印 3 个乘法表

    空标题文档 - 图1

    注意必须将内循环缩进,而且 print 语句距外部 for 循环开始位置还要多加 4 个空格。这个程序会分别打印 5、6 和 7 的乘法表,每个表分别从 1 乘到 10:

    >>> ==================== RESTART ===================
    >>>
    1 x 5 = 5
    2 x 5 = 10
    3 x 5 = 15
    4 x 5 = 20
    5 x 5 = 25
    6 x 5 = 30
    7 x 5 = 35
    8 x 5 = 40
    9 x 5 = 45
    10 x 5 = 50

    1 x 6 = 6
    2 x 6 = 12
    3 x 6 = 18
    4 x 6 = 24
    5 x 6 = 30
    6 x 6 = 36
    7 x 6 = 42
    8 x 6 = 48
    9 x 6 = 54
    10 x 6 = 60

    1 x 7 = 7
    2 x 7 = 14
    3 x 7 = 21
    4 x 7 = 28
    5 x 7 = 35
    6 x 7 = 42
    7 x 7 = 49
    8 x 7 = 56
    9 x 7 = 63
    10 x 7 = 70

    可以在屏幕上打印一些星号,并统计有多少个,你可能认为这很没意思,不过要了解嵌套循环到底是怎么回事,这确实是一个很好的办法。在下一节,我们就来完成这个工作。