|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def poe(x,y):
if y:
return x*poe(x,y-1)#假设这里X和Y都是4 应该是4*(4,3)=4*12或者4*4*4*4=1024啊 为啥是4的三次方结果 而且为啥(X,Y)就代表是X的Y次方 这里是自定义函数啊 为啥不是X直接乘Y 求解求解啊 脑袋都想破了
else:
return 1
print(poe(4,4))
想象力不够,就有笔头写一下啊。俗话说好脑子不如烂笔头
4的4次方太长了,给你写一下2的3次方吧
执行print(poe(2,3)),会先去调用poe,然后得到其返回值
第一次调用poe,此时x=2,y=3,遇到 if 判断,进入 if 语句块,执行return x*poe(x,y-1) 会先去调用poe,再将其返回值与x相乘
第二次调用poe,此时x=2,y=2,遇到 if 判断,进入 if 语句块,执行return x*poe(x,y-1) 会先去调用poe,再将其返回值与x相乘
第三次调用poe,此时x=2,y=1,遇到 if 判断,进入 if 语句块,执行return x*poe(x,y-1) 会先去调用poe,再将其返回值与x相乘
第四次调用poe,此时x=2,y=0,遇到 if 判断,进入 else 语句块,执行return 1, 直接返回1,返回到上次调用poe的位置
返回到第三次调用时的 if 语句块内return语句处,得到 x*1 即2,然后return 2, 直接返回1,返回到上次调用poe的位置
返回到第二次调用时的 if 语句块内return语句处,得到 x*2 即4,然后return 4, 直接返回4,返回到上次调用poe的位置
返回到第一次调用时的 if 语句块内return语句处,得到 x*4 即8,然后return 8, 直接返回8,返回到上次调用poe的位置
返回到print中,print(8)
|
|