我正在进行过去的测试,代码的输出是这样的:
Enter the height:
5
5
44
333
2222
11111
我必须写下代码 - 到目前为止,我知道如何制作一个普通的三角形:
for i in range(5):
print('*'*i)
*
**
***
****
我的主要问题是,如果三角形迭代数字,我如何得到身体?
那么第一个三角形的代码是什么? 帮助将不胜感激:))
答案 0 :(得分:1)
此代码几乎相同,您只需更改打印每个字符的次数,并将要打印的*
更改为数字。
for i in range(5):
print(str(5-i) * (i+1))
这会产生:
5
44
333
2222
11111
要使其正确对齐,就像在您的示例中一样,只需在空格字符上使用字符串乘法。
for i in range(5):
print(' ' * (4-i) + str(5-i) * (i+1))
这会让你:
5
44
333
2222
11111
答案 1 :(得分:0)
您可以使用str:
for i in range(5):
print(str(i)*i)
答案 2 :(得分:0)
格式化字符串&与外部数组和否定变量的间距。
def height(num):
rangenum=range(num+1)
for i in rangenum:
print(("%"+str(num)+"s")%(i*str(rangenum[-i])))
print("%(spacing as a number)s"%(a string))
返回
(spacing as a number)-(a string)
示例:
print("%10s"%"this")
返回:
" this"
旁注:
%-(a number)s
是对的。
(虽然python试图削减数百万种做同样事情的方法,但仍有数千种方法)
答案 3 :(得分:0)
其他一些答案基本上是正确的,但是这一个答案可以证明你的三角形与原始输出相似。
def print_triangle(rows):
for i in range(rows + 1):
print((str(rows + 1-i)*i).rjust(rows))
答案 4 :(得分:0)
height = 5
for i in range(height, 0, -1):
empty_chars = ' ' * (i - 1)
filler_chars = str(i) * (height - i + 1)
print('{}{}'.format(empty_chars, filler_chars))