11.1 嵌套循环

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

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

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

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

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

{%}

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

  1. >>> ==================== RESTART ===================
  2. >>>
  3. 1 x 5 = 5
  4. 2 x 5 = 10
  5. 3 x 5 = 15
  6. 4 x 5 = 20
  7. 5 x 5 = 25
  8. 6 x 5 = 30
  9. 7 x 5 = 35
  10. 8 x 5 = 40
  11. 9 x 5 = 45
  12. 10 x 5 = 50
  13. 1 x 6 = 6
  14. 2 x 6 = 12
  15. 3 x 6 = 18
  16. 4 x 6 = 24
  17. 5 x 6 = 30
  18. 6 x 6 = 36
  19. 7 x 6 = 42
  20. 8 x 6 = 48
  21. 9 x 6 = 54
  22. 10 x 6 = 60
  23. 1 x 7 = 7
  24. 2 x 7 = 14
  25. 3 x 7 = 21
  26. 4 x 7 = 28
  27. 5 x 7 = 35
  28. 6 x 7 = 42
  29. 7 x 7 = 49
  30. 8 x 7 = 56
  31. 9 x 7 = 63
  32. 10 x 7 = 70

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