无限递归-三菱数控指导手册api

时间:2024-07-03 00:32:24
【文件属性】:

文件名称:无限递归-三菱数控指导手册api

文件大小:1.91MB

文件格式:PDF

更新时间:2024-07-03 00:32:24

python

52 第五章 条件和递归 __main__ countdown countdown countdown countdown n 3 n 2 n 1 n 0 图 5.1: 堆栈图。 每当一个函数被调用时,Python生成一个新的栈帧,用于保存函数的局部变量和形参。 对于一个递归函数,在堆栈上可能同时有多个栈帧。 图 5.1展示了一个以 n = 3调用 countdown的堆栈图。 通常,堆栈的顶部是 __main__栈帧。因为我们在 __main__中没有创建任何变量,也没有 传递任何实参给它,所以它是空的。 对于形参 n,四个 countdown栈帧有不同的值。n=0的栈底,被称作基础情形 (base case) 。它不再进行递归调用了,所以没有更多的栈帧了。 接下来练习一下,请画一个以 s = 'Hello'和 n=2调用 print_n的堆栈图。写一个名为 do_n 的函数,接受一个函数对象和一个数 n作为实参,能够调用指定的函数 n次。 5.10 无限递归 如果一个递归永不会到达基础情形,它将永远进行递归调用,并且程序永远不会终止。 这被称作无限递归 (infinite recursion),通常这不是一个好主意。下面是一个最简单的 无限递归程序:� def recurse (): recurse () � 在大多数编程环境里,一个具有无限递归的程序并非永远不会终止。当达到最大递归深 度时,Python会报告一个错误信息:� File "", line 2, in recurse File "", line 2, in recurse File "", line 2, in recurse . .


网友评论