几个Rowes序列的Python嵌套循环

时间:2015-02-11 05:09:14

标签: python loops nested

如何使用嵌套在循环中的循环来创建此输出:

100
101 102
103 104 105
106 107 108 109

3 个答案:

答案 0 :(得分:0)

您可以使用带有某些其他变量的while循环来执行此操作:

>>> st, end, length = 100, 110, 1
>>> while st < end:
...     print (" ".join(map(lambda x: "%3d" % x, range(st,st+length))))
...     st += length
...     length += 1
... 
100
101 102
103 104 105
106 107 108 109

请注意,我在地图中使用了lambda而不是str,因此不同宽度的数字不会打破缩进。

您可以类似地将其基于最后一行的宽度,如下所示(在这种情况下,无需跟踪我上面所做的结束变量):

>>> st, width = 1, 1
>>> while width <= 15:
...     print (" ".join(map(lambda x: "%3d" % x, range(st, st + width))))
...     st += width
...     width += 1
... 
  1
  2   3
  4   5   6
  7   8   9  10
 11  12  13  14  15
 16  17  18  19  20  21
 22  23  24  25  26  27  28
 29  30  31  32  33  34  35  36
 37  38  39  40  41  42  43  44  45
 46  47  48  49  50  51  52  53  54  55
 56  57  58  59  60  61  62  63  64  65  66
 67  68  69  70  71  72  73  74  75  76  77  78
 79  80  81  82  83  84  85  86  87  88  89  90  91
 92  93  94  95  96  97  98  99 100 101 102 103 104 105
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

答案 1 :(得分:0)

只需使用两级for循环:

x = 100
for i in range(1, 5):
    for j in range(i):
        print(x, end=" ")
        x += 1
    print("")

答案 2 :(得分:0)

像这样的东西???

start = 100
lines = 5
for i in range(lines):
    stop = start + i + 1
    for j in range(a, stop):
        print j,
    start = stop
    print