为了账号安全,请及时绑定邮箱和手机立即绑定

fact中的参数

例题中的fact中n,没见定义。但是小数 和 负数,就会报错,问下是内部定义了?

正在回答

1 回答

首先 函数的参数 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
## 递归错误:      超出最大递归深度


0 回复 有任何疑惑可以回复我~
#1

魔luck 提问者

非常感谢!
2016-04-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

fact中的参数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信