为什么我的递归函数没有连接字符串?

Why is my recursive function is not concatenatening string?

我正在编写一个递归函数来反向打印字符串。我想知道为什么 return 语句的字符串格式不起作用?我正在使用 python 3.7。 如果有人能告诉我为什么我不能像下面这样编写递归函数,那将非常有帮助?

def back(word):

    if len(word)>1:

        print (word[-1] + (back(word[:len(word)-1])), end="")
    elif len(word)==1:
        return word
    else:
        print ("end")


back("stack")

正如评论中提到的 khelwoodprint() 不能替代 return

您的问题的解决方法是:

def back(word):
    ln = len(word)
    if ln >1:
        wmo = word[-1]
        # Changed print() to return
        return (wmo + (back(word[:len(word)-1])))
    elif ln ==1:
        return word
    else:
        print ("end")

# Changed to print() the returned values from function 
print(back("stack"))

正如您在上面看到的,在固定解决方案中,我们返回函数的值并将其打印到外部。

希望对您有所帮助!