莱州刘德华 发表于 2022-3-3 19:45:05

递归为什么一定要return

def now(x,y):
    if y:
      return x*now(x,y-1)
    else:
      return1

result=now(2,3)
print(result)

python爱好者. 发表于 2022-3-3 19:48:15

没有规定呀,也可以用列表,只是 return 更方便些

人造人 发表于 2022-3-3 19:52:02

递归一定要return吗?

$ cat main.py
#!/usr/bin/env python
#coding=utf-8

def output(string, index):
    if index < len(string):
      output(string, index + 1)
      print(string, end = '')

output("12345", 0)
print('')
$ ./main.py
54321
$

莱州刘德华 发表于 2022-3-3 20:02:50

python爱好者. 发表于 2022-3-3 19:48
没有规定呀,也可以用列表,只是 return 更方便些

这个return 1是什么意思啊

isdkz 发表于 2022-3-3 20:39:32

本帖最后由 isdkz 于 2022-3-3 23:50 编辑

莱州刘德华 发表于 2022-3-3 20:02
这个return 1是什么意思啊

因为不能无限递下去,还得归,

所以得满足特定条件之后开始弹栈,return 1 就是就是停止递,开始归

大马强 发表于 2022-3-3 22:24:22

递归需要的是一个能停止【递】的条件,【return】是停止【递】的措施
在本题中停止【递】的条件是y=0,【return 1】就开启了归的过程
x=2,y=3
2 * now(2,3-1)递1
2 * now(2,2-1)递2
2 * now(2,1-1)递3
y=0 -> return1
return 2 * 1    归3
return 2 * 2    归2
return 2 * 4    归1
print(8)

把1 2 4 代成now(x,y-1)

傻眼貓咪 发表于 2022-3-4 10:13:07

递归一定要 return 吗?
def foo(n):
        print("递")
        if n:
                foo(n-1)
        print("归")

foo(5)递










shiyouroc 发表于 2022-3-4 13:34:29

递归递归有递才有规
页: [1]
查看完整版本: 递归为什么一定要return