| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
def power(x, y): 
    if y: 
        return x * power(x, y-1) 
    else: 
        return 1 
     
print(power(2, 3)) 
 
 return x * power(x, y-1)这句我应该怎么理解?
 本帖最后由 Twilight6 于 2020-11-18 21:17 编辑  
 
 
语言不好叙述,直接举例子吧: 
 
假设 x = 2 , y = 3 
 
调用 power(x, y) 将 x ,y代入函数 : 
 
power(2, 3) --> if 3 --> True --> return 2 * power(2, 3-1)  
 
而 power(2, 3-1)  开始第一次递归: 
 
power(2, 2)  --> if 2 --> True --> return 2 * power(2 , 2-1)  
 
而 power(2, 2-1)  开始第二次递归: 
 
power(2, 1)  --> if 1 --> True --> return 2 * power(2 , 1-1)  
 
而 power(2, 1-1)  开始第三次递归: 
 
power(2, 0)  --> if 0 --> False --> else -->  return 1 
 
递归进入,依次返回:2 * 2 * 2 * 1 
 
即 power(2, 3)  函数 return 2 * 2 * 2 * 1 
 
 
 
 
 
 
 |   
 
 
 
 |