如何将这个金字塔图案倒过来打印?
How to print this pyramid pattern up side down?
我正在尝试在金字塔图案下方打印。但是没有点击如何为它构建逻辑?
模式:
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
我试过这段代码似乎不是获得it.Any解决方案的正确方法
import numpy as np
n = 5
cnt=0
var = np.arange(1,n+1)
for row in range(1,n+1):
print(var[::-1][cnt:])
cnt= cnt + 1
以上模式的输出:
[5 4 3 2 1]
[4 3 2 1]
[3 2 1]
[2 1]
[1]
你真的need/want会用numpy吗?
这很容易使用纯 python 实现。逻辑是在左侧添加空格来填充(你也可以使用rjust
这样的字符串函数):
n = 5
for i in range(n):
print(' '*i + ' '.join(map(str, range(n-i, 0, -1))))
输出:
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
注意。如果你有两位数,你应该使用 rjust
:
n = 15
L = 0
for i in range(n):
s = ' '.join(map(str, range(n-i, 0, -1)))
L = max(L, len(s))
print(s.rjust(L))
输出:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
14 13 12 11 10 9 8 7 6 5 4 3 2 1
13 12 11 10 9 8 7 6 5 4 3 2 1
12 11 10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
有解决办法吗?好的:
>>> print("\n".join([ "{:>10}".format(" ".join([ str(x) for x in range(n,0,-1) ])) for n in range(5,0,-1) ]))
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
您可以创建一个函数来降低整体复杂性
def pyramid(height):
L = 0
for i in range(height):
s = ' '.join(map(str, range(height-i, 0, -1)))
L = max(L, len(s))
print(s.rjust(L))
height = int(input('Enter the height of the Pyramid : '))
pyramid(height)
我正在尝试在金字塔图案下方打印。但是没有点击如何为它构建逻辑?
模式:
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
我试过这段代码似乎不是获得it.Any解决方案的正确方法
import numpy as np
n = 5
cnt=0
var = np.arange(1,n+1)
for row in range(1,n+1):
print(var[::-1][cnt:])
cnt= cnt + 1
以上模式的输出:
[5 4 3 2 1]
[4 3 2 1]
[3 2 1]
[2 1]
[1]
你真的need/want会用numpy吗?
这很容易使用纯 python 实现。逻辑是在左侧添加空格来填充(你也可以使用rjust
这样的字符串函数):
n = 5
for i in range(n):
print(' '*i + ' '.join(map(str, range(n-i, 0, -1))))
输出:
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
注意。如果你有两位数,你应该使用 rjust
:
n = 15
L = 0
for i in range(n):
s = ' '.join(map(str, range(n-i, 0, -1)))
L = max(L, len(s))
print(s.rjust(L))
输出:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
14 13 12 11 10 9 8 7 6 5 4 3 2 1
13 12 11 10 9 8 7 6 5 4 3 2 1
12 11 10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 3 2 1
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
有解决办法吗?好的:
>>> print("\n".join([ "{:>10}".format(" ".join([ str(x) for x in range(n,0,-1) ])) for n in range(5,0,-1) ]))
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
您可以创建一个函数来降低整体复杂性
def pyramid(height):
L = 0
for i in range(height):
s = ' '.join(map(str, range(height-i, 0, -1)))
L = max(L, len(s))
print(s.rjust(L))
height = int(input('Enter the height of the Pyramid : '))
pyramid(height)