python用数字绘制半三角形

时间:2017-01-30 22:17:54

标签: python python-3.x

我正在尝试获取此输出(使用逗号):

1
2, 1
3, 2, 1
4, 3, 2, 1
5, 4, 3, 2, 1

问题是,我无法删除"最后一个昏迷(,)位于每一行的数字1旁边。这是代码:

for i in range(1,6):
for x in range(i,0,-1):
    print("%i,"%(x), end=" ")
print()

2 个答案:

答案 0 :(得分:1)

您可以使用str.joinrange以及map来实现此目的:

>>> n = 5
>>> for i in range(n):
...     print(', '.join(map(str, range(i+1, 0, -1))))
...
1
2, 1
3, 2, 1
4, 3, 2, 1
5, 4, 3, 2, 1

如果您正在寻找一个班轮解决方案,那么您可以使用嵌套str.join来编写它:

>>> print('\n'.join(', '.join(map(str, range(i+1, 0, -1))) for i in range(n)))
1
2, 1
3, 2, 1
4, 3, 2, 1
5, 4, 3, 2, 1

其中n是需要打印的行数。

答案 1 :(得分:0)

尝试在for循环后输出最后一个元素:

for i in range(1,6):
        for x in range(i,1,-1):
            print("%i,"%(x), end=" ")
        print("1", end=" ")
        print()
 #1 
 #2, 1 
 #3, 2, 1 
 #4, 3, 2, 1 
 #5, 4, 3, 2, 1