首页 > 解决方案 > 在 Python 中打印半个数字金字塔

问题描述

假设,给你一个正整数。现在,打印一个高度的数字三角形,如下图所示。超过 2 行将导致 0 分。

1

22

333

4444

55555

我的代码:

for i in range(1,int(input())): #More than 2 lines will result in 0 score. Do not leave a blank line also
    for j in range(i):
        print((j+1), end="")
    print("\n")

我可以在两个打印语句中做到这一点,但不是一个。我将如何将其浓缩为一个?

标签: pythonpython-3.x

解决方案


您可以通过一次print调用使用列表推导:

print('\n'.join(str(i)*i for i in range(1, 6)))

输出:

1
22
333
4444
55555

推荐阅读