大家好,我想请您向我解释我的错误是什么以及如何改进此代码。问题在“Python 中的棋盘颗粒问题。编写一个循环,打印一个单元格的序列号及其上的颗粒数,直到一个单元格中的颗粒数超过 100000。使用简单的循环。而,对于 .Range 帮助, 请。”
这是代码:
from math import *
sum = 0
for n in range(1, 65):
m = int(pow(2, n - 1))
print("%2d: %d" % (n, m))
if sum < 100000:
sum = sum + m
if sum > 100000:
break
print("sum = %d" % sum)
如果是这样?
这里不需要使用 power pow,将结果转换为 int 通常是没有用的。两次比较(而不是所需的量级)是多余的。
不需要按条件设置总和。顺便说一句,使用内置函数 sum 的名称并不好。