我有这个任务要做:编写一个名为triangle的过程,它接受一个数字然后打印出一个三角形 那个身高。就像这个:
*
***
*****
*******
我找到的唯一解决方案就是这段代码:
def triangle(size):
spaces=""
stars=""
line=""
for i in range(0,size):
for j in range(0,(size-1-i)+11-(size-1-i)-i):
line=line+" "
for k in range(0,2*i+1):
line=line+"*"
print(line)
line=""
triangle(2)
triangle(3)
triangle(4)
我只是想知道是否有人有更简单的方法来实现这一点,或者是一种简化代码并使其更具可读性的方法?
答案 0 :(得分:8)
这是一个单行内容,可能会证明你的老师是你从互联网上复制的:
OP编辑后编辑:
def triangle(n) : print('\n'.join(map(lambda i:('{:^'+str(2*n)+'}').format('*'*(2*i+1)), range(n))))
答案 1 :(得分:2)
当您使用Python 3时,print()
函数有一些不错的选项:
def triangle(size):
print(*(('{:^'+str(2*size+1)+'}').format('*'*row) for row in range(1, 2*size+1, 2)), sep='\n')
这会创建一个格式化的字符串,以每行的正确数量为中心,然后将每一行作为参数发送到print()
,并以换行符作为分隔符。
>>> triangle(4)
*
***
*****
*******
>>> triangle(5)
*
***
*****
*******
*********
答案 2 :(得分:1)
def triangle(line):
for numberofsymbol in range(line):
for j in range(line-numberofsymbol): print(" ", end='')
for j in range(numberofsymbol): print("* ", end='')
print("")
triangle(10)
OUPUT:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *