这个功能对我来说没有意义.我已经在所有地方添加了印刷语句,以弄清楚发生了什么,我仍然没有得到它.如果有人能向我解释,我将不胜感激.
def f(s):
if len(s) <= 1:
return s
return f(f(s[1:])) + s[0]
print(f("mat"))
Run Code Online (Sandbox Code Playgroud)
这就是我看到的情况.所以我们从长度为3的字符串开始并绕过if语句.我们首先在内部f(s [1:])上工作.所以现在我们有一个长度为2("at")的字符串再次绕过if语句并输入f(s [1]),它给出了长度为1("t")的字符串,最后输入if语句并返回"T".对我来说,这条路很冷.
从我的print语句中,我看到创建了一个长度为2的新字符串,然后返回"a".最终产品最终成为"atm".由于"+ s [0]"部分我得到了"m"被标记,但为什么它是"atm"而不是"tam"?
我老老实实地花了几个小时,不能下雨.任何帮助,将不胜感激.