马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def power(x, y):
if y:
return x * power(x, y-1)
else:
return 1
print(power(2, 3))
用递归的形式 写出 x的 y 次幂
return x * power(x, y-1) 这句 第一次 return之后 x * power(2,3-1) == x * power(2, 2) 这里看明白了 函数 的变量 y 发生了变化 power(2, 2)
那 下面打印结果 怎么回事 函数变了 打印结果 怎么出现两个 x 相乘了 if y==2的时候
if y == 3 return x * power(x, y-1) == return 2 * power(2, 3-1) == reteurn 2 * power(2, 2)
if y == 2 return x * power(x, y-1) == return 2 * 2 * power(2, 2-1) == return 2 * 2 * power(2, 1) # 这里不懂 红色部分 怎么 就多出来一个 x 打印函数的时候 就函数的参数变了 怎么 函数power() 前面的 x 也跟着函数走了 又重新调用一次呢
if y == 1 return x * power(x, y-1) == return 2 * 2 * 2 * power(2, 1-1) == return 2 * 2 * 2 * power(2, 0)
if y == 0 else return 1 #请问这里打印 1 是什么意思 这个 1 用到那里去了 用了还是么有用?
小甲鱼的书你不是有吗?看一下斐波那契数列那章就明白了。这里并不是单纯的y每次-1啊,是每次return了上次调用自己的结果
|