为什么这个代码没有用循环它还循环呢?
def e2():print('e2()')
def e3():
print('e3()')
e2()
没有用循环,但是还是循环了,这是为什么呢?{:10_269:} {:10_269:} {:10_269:}
e2自己调用自己,没有出口,导致无限递归,最后超出最大递归深度。 因为在函数里调用了函数
所以就一直循环调用 递归,自己调用自己,也可以算作循环。
一个现实中的例子:你在四周各放置一面镜子,你会看到什么现象?
你会在镜子中看到无数个你自己。
镜子照镜子就是递归,结果出现无数个自己,就变成了循环。
这个叫递归哈,函数无限调用自身直到超出递归最大深度就会报错:RecursionError: maximum recursion depth exceeded while calling a Python object 这叫无限递归,不叫循环 这个是代码的报错Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
e2()
File "<pyshell#1>", line 5, in e2
e2()
File "<pyshell#1>", line 5, in e2
e2()
File "<pyshell#1>", line 5, in e2
e2()
File "<pyshell#1>", line 2, in e2
print('e2()')
RecursionError: maximum recursion depth exceeded while pickling an object xiao-wugui@ xiao-wugui 发表于 2020-7-19 12:10
这个是代码的报错
这是超出递归最大深度报错了。
考试了吗{:10_279:}
页:
[1]