在Python中打印数字的半金字塔

时间:2018-10-16 17:50:24

标签: python python-3.x

假设给您一个正整数。现在,打印高度数字三角形,如下图所示。多于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")

我可以用两个打印语句来做,但不能一个。我如何将其浓缩为一个?

4 个答案:

答案 0 :(得分:4)

您可以通过单个print调用来使用列表推导:

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

输出:

1
22
333
4444
55555

答案 1 :(得分:0)

您可以通过多种方式来执行此操作,例如,使用列表理解:

for i in range(1,int(input())):
    print([i for j in range(i)])

然后也许您想将输出更改为字符串而不是列表,在这种情况下,您可以这样做:

for i in range(1,int(input())):
    print("".join([str(i) for j in range(i)]))

答案 2 :(得分:0)

您可以执行以下操作:

for i in range(1, int(input()) + 1):
    print(''.join(str(i) for j in range(i)))

输出

1
22
333
4444
55555

注意::以上输出是针对input = 5

答案 3 :(得分:0)

for i in range(1,int(input())):
    print((10**i)//9*i)

通过使用此代码,您无需使用字符串功能就可以打印图案,并且代码位于两行之内。