由scratch 等级考试四级引发的一些思考: |
1.scratch 等级考试四级题目:
程序运行结果: 角色会不断在舞台中央位置左右移动;
同理:使用相同的代码在python中进行编程:
1 def main():
2 print("我是主函数main:")
3 a()
4
5 def a():
6 print("我是函数A:")
7 b()
8
9 def b():
10 print("我是函数B")
11 a()
12
13 """
14 1.调用主函数,结果会是什么:
15 """
16
17 main()
结果: maximum recursion depth exceeded while calling a Python object
Python默认递归调用深度为1000(即最多递归调用1000次),而程序在运行过程中超过最大的递归深度。
解决方案:sys.setrecursionlimit(1000000) #例如这里设置为一百万
所以你要理解什么是递归,递归能解决什么问题?
作为学生,可能只需要知道这道题的答案是什么,作为老师,需要知道这道题背后需要你有什么能力和解决方案.
递归真的很重要,之前学的时候,学的一知半解,以为真正了解,每次想到递归,就记得一句:返回给函数的调用者,嗯?函数调用者,你是说外部,还是内部啊?疑问太多了,还有就是被告知一句:递归能解决的问题,循环都能解决,所以就更加不重视递归了!直到接触算法后,在解决问题时,最快,最容易理解的解法就是递归,但是此时的递归却是看不太懂为什么要这样做!我先来说下,在算法中遇到可以用递归轻松完成的:希尔排序、归并排序、快速排序、反转链表及各种反转问题、二叉树的深度遍历、二叉树的各种题基本可以用、全排列…还有算法步骤里需要用到,太多了,所以,递归非常重要!“To iterate is human, to recurse divine 迭代是人,递归是神”,
————————————————
版权声明:本文为CSDN博主「storyfull」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/storyfull/article/details/102671946
原文:https://www.cnblogs.com/baiyi-chichu/p/14775822.html