为什么我的递归函数没有连接字符串?
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")
正如评论中提到的 khelwood,print()
不能替代 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"))
正如您在上面看到的,在固定解决方案中,我们返回函数的值并将其打印到外部。
希望对您有所帮助!
我正在编写一个递归函数来反向打印字符串。我想知道为什么 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")
正如评论中提到的 khelwood,print()
不能替代 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"))
正如您在上面看到的,在固定解决方案中,我们返回函数的值并将其打印到外部。
希望对您有所帮助!