为了账号安全,请及时绑定邮箱和手机立即绑定

新手求解答

def power(x, n=2):    s = 1    while n > 0:        n = n - 1        s = s * x    return s print power(5) 这段没看懂,求解答?怎么就是平方了

正在回答

4 回答

他这个公式是需要循环三次才让s=5 n=2 结果是25 比较麻烦

0 回复 有任何疑惑可以回复我~

和C++在带参数的构造函数里一样作用,如果你传参数给这个位置,就会用你传的参数,如果没有传参数就用你在定义时默认的参数。所以带参数的变量一定在参数表的最后面

0 回复 有任何疑惑可以回复我~
  1. power(5)运行时,5被赋值给x,由于没有给n赋值,所以n为2;

  2. s被赋值1;

  3. 开始循环,此时n= 2大于0满足循环条件,进入循环

  4. 将n-1得到的差值赋值给n自己(原先的2被覆盖),此时n=1

  5. 将s*5(x被赋值为5)得到的乘积赋值给s,此时s=5

  6. 第一次循环结束,返回检验循环条件,由于此时n=1仍旧大于0,再次进入循环

  7. 将n-1得到的差值赋值给n自己(原先的1被覆盖),此时n=0

  8. 将s*5得到的乘积赋值给s,此时s=5*5=25

  9. 第二次循环结束,返回检验循环条件,由于此时n=0不大于0,循环结束

  10. 返回s的值

可以看到n控制着乘法执行的次数,由于power(5)并没有对n进行赋值,所以n默认为2也就是进行两次乘法,所以是平方,如果对n进行赋值,比如power(5,3),那这样的话就是5*5*5,三次乘法操作

0 回复 有任何疑惑可以回复我~

power(5)  #这里缺省了一个参数,所以后一个参数会使用默认值 x=5,n=2

#然后进入到函数里面

s = 1    

while n > 0:  #此时n=2符合条件        

n = n - 1  #n=1      

s = s * x  #s=1*5=5

#然后回到while判断的地方

while n > 0:  #此时n=1符合条件        

n = n - 1  #n=0      

s = s * x  #s=5*5=25

#然后回到while判断的地方

while n > 0:  #此时n=0不符合条件    

#因此,默认值n=2的时候实现的是平方的操作

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758620    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

新手求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信