使用递归Python的星形三角形

使用递归Python的星形三角形,python,recursion,Python,Recursion,所以我有一个任务来递归地写一些简单的函数。其中之一是根据输入的高度制作一个三角形的星星。例如: 星星(5) 将打印: * ** *** **** ***** 这个函数可以很好地实现这一点 def stars(height): x = 1 while x <= height: print ('*' * x) x += 1 def星形(高度): x=1 而x我会这么做: def recurse_triangle(num, char):

所以我有一个任务来递归地写一些简单的函数。其中之一是根据输入的高度制作一个三角形的星星。例如:

星星(5)

将打印:

*
**
***
****
*****
这个函数可以很好地实现这一点

def stars(height):
    x = 1
    while x <= height:
        print ('*' * x)
        x += 1
def星形(高度):
x=1
而x我会这么做:

def recurse_triangle(num, char):
    if num > 0:
        recurse_triangle(num-1, char)
        print(char*num)

recurse_triangle(5, '*')
输出:

*
**
***
****
*****
我会这样做:

def recurse_triangle(num, char):
    if num > 0:
        recurse_triangle(num-1, char)
        print(char*num)

recurse_triangle(5, '*')
输出:

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

这很简单,只需添加一个,直到达到高度。使用默认值并调用
star(12)


这很简单,只需添加一个,直到达到高度。使用默认值并调用
star(12)


最初用所需的高度和0表示星星数来调用它

 def stars(height, x):
        if x < height:
           return
        else:
           print ('*' * x)
           stars(height, x + 1)
def星形(高度x):
如果x<高度:
返回
其他:
打印('*'*x)
星星(高度,x+1)

首先用所需的高度调用它,用0表示星星数

 def stars(height, x):
        if x < height:
           return
        else:
           print ('*' * x)
           stars(height, x + 1)
def星形(高度x):
如果x<高度:
返回
其他:
打印('*'*x)
星星(高度,x+1)

这是递归调用它的方法之一

def stars(height, sub=0):
    if sub < height:
        print "*"*(height-(height-1)+sub)
        stars(height, sub+1)

stars(5)

这是递归调用它的方法之一

def stars(height, sub=0):
    if sub < height:
        print "*"*(height-(height-1)+sub)
        stars(height, sub+1)

stars(5)

这个用升序和降序打印怎么样

def stars(n, descending=True):
    if (descending):
        print '*'*n

    if n==1:
        if not descending:
            print '*'
        return

    stars(n-1, descending)
    if not descending:
        print '*'*n

stars(5)
print
stars(5, descending=False)
输出:
这个用升序和降序打印怎么样

def stars(n, descending=True):
    if (descending):
        print '*'*n

    if n==1:
        if not descending:
            print '*'
        return

    stars(n-1, descending)
    if not descending:
        print '*'*n

stars(5)
print
stars(5, descending=False)
输出:
是的,我也有同样的想法。用另一个值来限制高度。是的,我也有同样的想法。使用另一个值来限制高度。无论
h
是否等于
n
,您都在打印
n*'*'
。你可以把它从
if
语句中去掉,用一个
if
语句调用
star(h,n+1)
if
h
不等于
n
。哦,是的,我的错。这是显而易见的,但你是对的。我以为您指的是用另一行替换该行而不改变顺序。您正在打印
n*'*'
,而不管
h
是否等于
n
。你可以把它从
if
语句中去掉,用一个
if
语句调用
star(h,n+1)
if
h
不等于
n
。哦,是的,我的错。这是显而易见的,但你是对的。我以为您指的是将该行替换为另一行,而不改变顺序。您如何做到这一点,以便可以调用一次并获得完整的输出?例如
stars(5)
returns***************************您将如何执行此操作,以便可以调用它一次并获得完整的输出?例如
stars(5)
returns*****************