不是夜晚
2019-05-23 10:58
x = 1
n = 1
while True:
if n > 20:
break
x = x + x
n = n + 1
sum = sum + x
print sum
第一:sum没有初始值应该要先赋值为0,sum=0
第二:如果sum=sum+x放后面,第一次循环的时候先计算的是x=x+x =2 ,这样就少了第一个数x=1,这样计算的就是2+4+8+16+。。。+的二十个数,
第三: 要是改成这样的话,sum=sum+x放后面也是可以的
sum = 1
x = 1
n = 1
while True:
if n > 19:
break
x= x*2
n= n + 1
sum = sum + x
print sum
sum = 0
x = 1
n = 1
while True:
if n > 20:
break
x = 2 ** (n - 1)
sum += x
n += 1
print sum
这样第一个x都加不进去,x=1是第一个数,sum要先加第一个数,你直接先x=x+x,sum直接加2
不清楚你说的“放在后面”是指的放在哪行代码的后面,如果是放到x = x + x,“前面”和“后面”进行对比,结果当然会不一样了,放到“后面”会多执行一次sum =sum +x
初识Python
758588 学习 · 8667 问题