没有返回的递归函数 - Python 2.7



这可以称为递归函数吗?它确实以一种方式减少,但不是以(数量 - 1)类型的方式减少......

编辑:另外,如何在不使用 return 的情况下编写递归函数?

def wow(amount):
    if amount <= 0:
        print "Don't be so negative!"
    elif amount == 1:
    return "Wow!"
    else:
        return amount * "Wow! n"

amount = int(raw_input("How many 'Wow!' do you wanna see : "))
print wow(amount)

不,这不是递归函数。递归函数必须调用自身。本页解释并显示了递归函数的示例。

这将是一个递归函数。

def wow(amount):
    if amount <= 0:
        return
    else:
        print("Wow! n")
        return wow(amount - 1)

将代码转换为递归函数的完整解决方案将是。

def wow(amount):
    if amount <= 0:
        return "Don't be so negative!"
    elif amount == 1:
        return "Wow!"
    else:
        return inner_wow("", amount)
    def inner_wow(wow_str, amount):
        if amount == 0:
            return
        else:
            wow_str += "Wow! n"
            return wow(wow_str, amount - 1)

回答你的第二个问题。所有函数都必须返回一些东西。即使你不告诉他们归还东西,他们仍然不返回。

最新更新