fact中的参数
例题中的fact中n,没见定义。但是小数 和 负数,就会报错,问下是内部定义了?
例题中的fact中n,没见定义。但是小数 和 负数,就会报错,问下是内部定义了?
2016-04-17
首先 函数的参数 n 不需要定义, 包含两个意思:
第一,它跟Python 的其他变量一样,不需要指定数据类型。
第二, n 是 函数的形参, 初始化的时候 不必须 给定 值。
其次, 之所以 传 小数和负数的 时候回报错, 这是 递归调用中 最常见的一种情况,代码举例说明:
def fact(n): if n==1: return 1 return n * fact(n - 1) ## 调用的时候如果传入 小数或者负数 , 则造成 “无限递归” 或者说是 “死递归” , 因为 不论是小数, ## 还是负数, 都打不到 if n == 1: return 1 的条件, 所以会 无限递归下去 就引发了如下错误: ## RecursionError: maximum recursion depth exceeded in comparison ## 递归错误: 超出最大递归深度
举报