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课程,我们必须解释这样做,以便高中代数学生能够理解。我搞不清楚了。如果有人能在不给我答案的情况下将我推向正确的方向,我将不胜感激。
答案 0 :(得分:3)
似乎代码定义了decorator 。 _fn 的内部定义是为了便于递归。代码正在计算以下
b^(b^(b^(... (b^(b^0)))...))
即,给出
b = 2
n = 3
值为:
16 = 2^(2^(2^(2^0)
答案 1 :(得分:3)
该函数计算b
提升到自身的力量n-1
次n
至少1
。它相当于这个更简单的非递归函数:
def g(b, n):
assert isinstance(n, int) and n >= 0
ret = 1
for _ in xrange(n):
ret = b ** ret
return ret
看起来像这样的数学公式:
答案 2 :(得分:2)
参加一个python类,我们必须解释这样做,以便a 高中代数学生会理解
function f 采用两个整数 b 和 n 。它将第一个 b 提升到第二个 n 的幂,并将 n 减少1.这将重复直到 n 为零,并返回累积结果。
这不回答任何与Python相关的问题,例如“assert isinstance(n, int) and n >= 0
做什么”,以及我作为OP的练习留下的。