我试图理解这一点/以任何可能的方式将其可视化无济于事。
def f(s):
if len(s) <= 1:
return s
return f(f(s[1:])) + s[0]
print f("mat")
print f("math")
输出:
atm
hatm
答案 0 :(得分:2)
我会建议一种方法,而不是给你答案。每当您不确定代码在做什么时,请插入大量print
语句以查看每个步骤中发生的情况。例如,
def f(s):
print 'running f...'
print 'input is',s
if len(s) <= 1:
print 's is <= 1'
return s
return f(f(s[1:])) + s[0]
在调试时,print语句是您最好的工具之一。