在python中

时间:2020-11-11 16:08:11

标签: python

我正在尝试打印此内容:

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

但是我不知何故像倒过来一样得到它 这是我的代码。我很困惑,因为我可以使用的东西非常克制。我一定不能使用任何String方法进行循环,切片索引或“ *” * n之类的操作。我所能做的就是使用while和if-else情况。

这是我的代码,我尝试不使其变得无用而深入研究。

outer = 1
while outer <= 10:
    inner = outer
    pos = 10  
    while pos >= 1:
        if pos > inner:  
            print(" ", end=" ")
            pos = pos - 1
        else:
            print("*", end=" ")  
            inner = inner - 1
            pos = pos - 1
    print(" ")
    outer = outer + 1

我的输出是

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


谢谢。

2 个答案:

答案 0 :(得分:0)

我制作了另一个我认为可以使用的版本

def pyramid(n):
    i = 0
    while i < n:
        k = 0
        while k < (i):
            print(" ", end="")
            k += 1
        j = i
        while j < n:
            print("*", end="")
            j +=1
        print()
        i += 1

pyramid(10)

答案 1 :(得分:0)

这是一种更简化的方法:

n = 10
while n > 0:
    i = 10 - n
    m = n
    g = 1
    while m <= 10:
        print(" ", end="")
        m += 1
    while g < m - i:
        print("*", end="")
        g += 1
    print()
    n -= 1

输出:

**********
 *********
  ********
   *******
    ******
     *****
      ****
       ***
        **
         *
相关问题