牛逼牛逼 发表于 2020-4-20 17:06:50

关于小甲鱼第17讲第一题的一个小问题

def power(x, y):
    result = 1
   
    for i in range(y):
      result *= x   #它这里循环了3次分别是2,2,2

    return result    #它这里不应该返回2 吗

print(power(2, 3)

zltzlt 发表于 2020-4-20 17:11:45

并不是,1 * 2 * 2 * 2 难道等于 2 ?

sunrise085 发表于 2020-4-20 17:12:59

result *= x 是 result = result * x 的简写
每次乘x之后result的值会改变的
第一次循环后,result=1*2=2
第二次循环后,result=2*2=4
第三次循环后,result=4*2=8
所以最后返回的是8

suchocolate 发表于 2020-4-20 17:14:13

result 在变:
本轮result * x = 下轮result
1 x 2 = 2
2 x 2 = 4
4 x 2 = 8

牛逼牛逼 发表于 2020-4-20 17:14:28

zltzlt 发表于 2020-4-20 17:11
并不是,1 * 2 * 2 * 2 难道等于 2 ?

他循环了三次,不应该是每次循环都是2 吗,他们3次循环为什么会加在一起

zltzlt 发表于 2020-4-20 17:14:51

是 result *= x 不是 result = x 啊

牛逼牛逼 发表于 2020-4-20 17:16:13

sunrise085 发表于 2020-4-20 17:12
result *= x 是 result = result * x 的简写
每次乘x之后result的值会改变的
第一次循环后,result=1*2=2 ...

懂了懂了我擦

牛逼牛逼 发表于 2020-4-20 17:23:27

zltzlt 发表于 2020-4-20 17:14
是 result *= x 不是 result = x 啊

懂了谢谢大佬
页: [1]
查看完整版本: 关于小甲鱼第17讲第一题的一个小问题