新手求解答
def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s print power(5) 这段没看懂,求解答?怎么就是平方了
2017-12-05
power(5)运行时,5被赋值给x,由于没有给n赋值,所以n为2;
s被赋值1;
开始循环,此时n= 2大于0满足循环条件,进入循环
将n-1得到的差值赋值给n自己(原先的2被覆盖),此时n=1
将s*5(x被赋值为5)得到的乘积赋值给s,此时s=5
第一次循环结束,返回检验循环条件,由于此时n=1仍旧大于0,再次进入循环
将n-1得到的差值赋值给n自己(原先的1被覆盖),此时n=0
将s*5得到的乘积赋值给s,此时s=5*5=25
第二次循环结束,返回检验循环条件,由于此时n=0不大于0,循环结束
返回s的值
可以看到n控制着乘法执行的次数,由于power(5)并没有对n进行赋值,所以n默认为2也就是进行两次乘法,所以是平方,如果对n进行赋值,比如power(5,3),那这样的话就是5*5*5,三次乘法操作
举报