嵌套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(" ")?
您正在使用 print
和 end=""
逐个字符地构建行,而无需换行。
要构建金字塔,您需要在一行零之后跳到下一行,因此默认具有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
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(" ")?
您正在使用 print
和 end=""
逐个字符地构建行,而无需换行。
要构建金字塔,您需要在一行零之后跳到下一行,因此默认具有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