三角形图案打印的递归方法

问题描述 投票:0回答:1

我最近一直在学习递归等概念,并尝试尝试使用Python中的旧程序,我使用迭代方法解决了这些问题,例如打印三角形图案,例如:

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

但我得到的输出是:

*****
****
*** 
**  
*   
None
def itriangle(x):
    if x==0:
        return
    print("*",end="")
    itriangle(x-1)
def jtriangle(y):
    if y==0:
        return
    itriangle(y)
    print()
    jtriangle(y-1)
print(jtriangle(5))

这是我写的代码, 首先,我得到这个三角形倒转,其次我得到“无”返回作为最后一行。 如何解决这个问题?它背后的概念是什么?

python recursion
1个回答
0
投票

为什么最后得到 None :这是因为 print(jtriangle(5)) 语句打印了 jtriangle(5) 函数的返回值,默认情况下为 None,因为没有明确的 return 语句。函数本身处理所有必要的打印,因此您不需要打印函数调用的结果。您可以简单地调用 jtriangle(5) 而不打印。

© www.soinside.com 2019 - 2024. All rights reserved.