def f(b, n):
assert isinstance(n, int) and n >= 0
def _f(n):
if n == 0: return 1
else: return b ** _f(n-1)
return _f(n)
参加 Python 课程,我们必须解释它的作用,以便高中代数学生能够理解。我搞不清楚了。如果有人可以在不给我答案的情况下将我推向正确的方向,我将不胜感激。
函数计算b
提升到自身的幂次 提升到自身的幂n-1
次 where n
is at least 1
。它等价于这个更简单的非递归函数:
def g(b, n):
assert isinstance(n, int) and n >= 0
ret = 1
for _ in xrange(n):
ret = b ** ret
return ret
它看起来像这样写成一个数学公式:
似乎代码定义了一个装饰器。_fn的内部定义是为了便于递归。该代码正在计算以下内容
b^(b^(b^(... (b^(b^0)))...))
即,给定
b = 2
n = 3
该值将是:
16 = 2^(2^(2^(2^0)
上 Python 课,我们必须解释它的作用,以便高中代数学生能够理解
函数f接受两个整数b和n。它将第一个b提高到第二个n的幂,并将n减少1。重复此操作直到n为零,并返回累积结果。
这没有回答任何与 Python 相关的问题,例如“做assert isinstance(n, int) and n >= 0
什么”,我将其留给 OP 作为练习。