课程
/后端开发
/Python
/初识Python
x = 1
sum = 0
n = 1
while True:
if n > 20:
break
n = n + 1
x = x * 2
sum = sum + x
print sum
2020-03-23
源自:初识Python 5-6
正在回答
这个是答案代码,在n = n + 1 结果为21时,会出发if条件,结束。 不会执行最后一步的print sum
你的代码
当n = n + 1 结果为21时,还是会继续执行下边步骤,直到print sum 执行完成后,才是你的if条件,才会识别出目前是大于20了,需要停止,但是结果已经按21位数计算完的了。
你的代码中是先计算x = x*2后计算sum = sum + x的值,所以sum中少了第一次x = 1时的值,而多了一次x = x*2的最后一次计算,所以你的结果时答案的2倍,正确答案应该改为
n = n + 1 sum = sum + x x = x*2
参考答案的代码,在某一次运行到n = n + 1后正好n > 20, 这时答案里的代码已经全部运行了20次 而你的代码才运行到n = n + 1,下面的 x = x * 2和sum = sum + x还没有运行 参考答案: sum = 0 x = 1 n = 1 while True: if n > 20: break sum = sum + x x = x * 2 n = n + 1 print sum
子女良
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序