Python递归(扩展)

时间:2017-03-13 18:30:33

标签: python recursion

我已经找到了解决方案但却无法找到解决方案。我想做一个递归,但该函数不能有一个return语句。 这是程序:

n = input("Input a positive integer: ")

text = open("Nummbers.txt", "w")
text.write("Number inputed: " + str(n))
tree(n)

def tree(n):
    if(n>0):
        tree(n-1)
        print(n)
        text.write(str(n))
        tree(n-1)

当我运行它时,它给了我一棵未定义的错误'。树必须如上所述。我如何让这个正常工作所有我已经看到的递归教程已经设置了这样,我使用的是python 2.7

1 个答案:

答案 0 :(得分:1)

您的def tree(n):必须在在代码主体中第一次调用它之前。重新排列:

def tree(n):
    if(n>0):
        tree(n-1)
        print(n)
        text.write(str(n))
        tree(n-1)

n = input("Input a positive integer: ")

text = open("Nummbers.txt", "w")
text.write("Number inputed: " + str(n))
tree(n)

当然,您现在遇到了相反的问题,text未在函数内定义。您应该将其添加为参数,或者您可以重新重新排列并拆分代码。