代码清单 11-4 是代码清单 11-3 的一个更复杂的版本。
代码清单 11-4 更复杂的星号块
输出如下:
>>> ======================= RESTART =======================>>>How many blocks of stars do you want? 3* * * ** * * * ** * * * * * ** * * * * * * * ** * * * * * ** * * * * * * * ** * * * * * * * * * ** * * * * * * * * * * * ** * * * * * * * * * * * * * *
代码清单 11-4 中,外循环的循环变量用来为内循环设置范围。所以每个星号块不再有相同的行数,而且每一行也不再有相同的星号数,每次循环时行数和星号数都不同。
你希望循环嵌套多深,就可以有多深。要明白这样的嵌套循环会让人很头疼,所以有时打印出循环变量的值会很有帮助,如代码清单 11-5 所示。
代码清单 11-5 在嵌套循环中打印循环变量
以下是这个程序的输出:
>>> ======================= RESTART =======================>>>How many blocks of stars do you want? 3block = 1* * * line = 1 star = 3block = 2* * * * * line = 1 star = 5* * * * * * * line = 2 star = 7* * * * * * * * * line = 3 star = 9block = 3* * * * * * * line = 1 star = 7* * * * * * * * * line = 2 star = 9* * * * * * * * * * * line = 3 star = 11* * * * * * * * * * * * * line = 4 star = 13* * * * * * * * * * * * * * * line = 5 star = 15
在很多情况下,而不只限于在循环中,打印变量的值都会对你很有帮助。这也是最常用的调试方法之一。