三角形的Python代码

时间:2015-12-31 07:10:41

标签: python

我有这个任务要做:编写一个名为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)

我只是想知道是否有人有更简单的方法来实现这一点,或者是一种简化代码并使其更具可读性的方法?

3 个答案:

答案 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:
         * 
        * * 
       * * * 
      * * * * 
     * * * * * 
    * * * * * * 
   * * * * * * * 
  * * * * * * * * 
 * * * * * * * * *