我想通过组合这两个半三角形来打印一个完整的三角形星号。
for g in range (11,0,-1):
print(g * ' ' + (11-g) * '*')
for i in range(11,0,-1):
print ('*'*(11-i)+ ' '*i)
答案 0 :(得分:0)
python format mini language提供了一种强大的机制来控制事物的显示方式
特别是,您正在寻找一个*
居中^
的三角形,并用填充。对于尺寸为
2n-1
的三角形,三角形的宽度为n
,例如对于n=5
:格式规范为' ^9'
每行*
的数量为2i-1 for i in 1..n
。
所以把这一切放在一起你得到:
>>> n = 5
>>> for i in range(1, n+1):
... print(format('*'*(2*i-1), ' ^'+str(2*n-1)))
*
***
*****
*******
*********
或者作为单个表达式(使用变量替换):
print('\n'.join('{: ^{width}}'.format('*'*(2*i-1), width=2*n-1) for i in range(1, n+1)))