以自定义间距递归打印金字塔图案

时间:2016-03-09 02:52:10

标签: python recursion

我在python中成功打印了一个递归金字塔模式,但我希望能够添加自定义间距,并且我在尝试中遇到了错误。

这是我的代码:

def printstack(n, indent = 0):
    if n == 0:
        return 'U'
    else:
        print(' '*(n-1) + 'U '*(indent+1))
        printstack(n-1, indent+1)

示例:

>>> printstack(3)
   U
  U U
 U U U

>>> printstack(3,1)
  U U 
 U U U 
U U U U

Expected Results

>>> printstack(3,1)
    U
   U U
  U U U

3 个答案:

答案 0 :(得分:2)

这似乎产生了你想要的东西,也有点简单。请注意,无关的return已被删除。

def printstack(n, indent = 0):
    if n > 0:
        printstack(n-1, indent+1)
        print(' ' * indent + 'U ' * n)

答案 1 :(得分:1)

def printstack(n, indent = 0,spaces=3):
    if n!=0:
        printstack(n-1, indent+1+spaces/2,spaces )
        print(' '*indent + ('U'+' '*spaces)*n )

printstack(5,6,1)

输出:

      U 
     U U 
    U U U 
   U U U U 
  U U U U U 

更改空格:

printstack(5,6,3)

输出

          U   
        U   U   
      U   U   U   
    U   U   U   U   
  U   U   U   U   U   

答案 2 :(得分:1)

检查以下代码,我认为你看起来像这样 -

>>> def printstack(n, indent=0):
...     if n > 0:
...         printstack(n-1, indent+1)
...         print(' '*indent + 'U '*n)


>>> printstack(3)
  U 
 U U 
U U U 
>>> printstack(3,1)
   U 
  U U 
 U U U 
>>> printstack(3,2)
    U 
   U U 
  U U U