假设给您一个正整数。现在,打印高度数字三角形,如下图所示。多于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")
我可以用两个打印语句来做,但不能一个。我如何将其浓缩为一个?
答案 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)
通过使用此代码,您无需使用字符串功能就可以打印图案,并且代码位于两行之内。