课程
/后端开发
/Python
/初识Python
为什么我在3.6shell里算出来是524287?这是个等比数列求和计算吧。
2018-06-09
源自:初识Python 5-6
正在回答
你的说法有问题
等于 的时候还没有break
所以是执行了20次
n 作为计数的量非常直观
研究了2个小时,终于搞明白了。我的答案524287是错的,因为n=n+1放在if语句之前,导致少循环了一次,实际上只计算了19项的和,计算到2的18次方,少算了一个2的19次方。正确答案确实是1048575.
对的
sum = 0
x = 1
n = 1
while True:
n += 1
sum += x
x *= 2
if n > 20:
break
print(sum)
慕SirPython 提问者
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序