代码之家  ›  专栏  ›  技术社区  ›  AHF

打印空金字塔

  •  0
  • AHF  · 技术社区  · 7 年前

       *
      * *
     *   *
    *     *
       *
    

        * 
       * * 
      * * * 
     * * * * 
    * * * * * 
    

    N

    对于其余的星星,我不知道如何制作,如果一颗星星在上面,那么下一颗星星就不应该在下面。

    def Empty_triangle(n): 
        k = 2*n - 2
        for i in range(0, n): 
            for j in range(0, k): 
                print(end=" ")
    
            k = k - 1
    
            for j in range(0, i+1): 
                # printing stars 
                print("* ", end="") 
    
            # ending line after each row 
            print("\r") 
    
    # Driver Code 
    n = 5
    Empty_triangle(n)
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Morgan Saville    7 年前

    这类事情怎么样?

    print("\n".join([" "*(n-2-i)+"*"+" "*(2*i-1)+("*"if i>0 else"") for i in list(range(n-1))+[0]]))
    

       *
      * *
     *   *
    *     *
       *
    

    这就是你的想法吗?

    这是一个代码较少的golfish版本

    def Empty_triangle(n): 
        for i in list(range(n-1))+[0]: #i.e. [0,1,2,3,4,0] so the last line is the same as the first
            line = ""
            leadingSpaces = n-2-i
            line += " "*leadingSpaces
            line += "*"
            if i != 0:
                middleSpaces = 2*i-1
                line += " "*middleSpaces
                line += "*"
            print(line)
    
    
    # Driver Code 
    n = 5
    Empty_triangle(n)
    
    推荐文章