嵌套for循环构建“0”金字塔

nested for loop to build a "0" pyramid

for i in range(0,7):
    for j in range(0, 7 - i):
        print(" ", end = "")
    for k in range(0, 2 * i + 1):
        print("0", end = "")
    print(" ")

我在网上看到这段构建金字塔的代码包含“0”,我很困惑为什么我需要在第一个循环的最底部使用 pint(" ")?

您正在使用 printend="" 逐个字符地构建行,而无需换行。

要构建金字塔,您需要在一行零之后跳到下一行,因此默认具有end='\n'参数的print(" ")

没有最后打印的输出:

       0      000     00000    0000000   000000000  00000000000 0000000000000

这里是对代码的修改,向您展示分隔符的位置:

for i in range(0,7):
    for j in range(0, 7 - i):
        print(" ", end = "-")
    for k in range(0, 2 * i + 1):
        print("0", end = "+")
    print("", end='=\n')

输出:

 - - - - - - -0+=
 - - - - - -0+0+0+=
 - - - - -0+0+0+0+0+=
 - - - -0+0+0+0+0+0+0+=
 - - -0+0+0+0+0+0+0+0+0+=
 - -0+0+0+0+0+0+0+0+0+0+0+=
 -0+0+0+0+0+0+0+0+0+0+0+0+0+=

这里有一个较短的替代初始代码的方法,可以直接用一个循环构建代码行:

n=7
for i in range(n):
    print(' '*(n-i)+'0'*(2*i+1))

输出:

       0
      000
     00000
    0000000
   000000000
  00000000000
 0000000000000