当然可以,您应该已经意识到只要您声明了您就可以得到[1,0,0,0,0,0,0]。所以很明显,问题不在于得到多余的数字,而在于保持多余的数字。在
如果没有看到您的代码,我们实际上无法告诉您它有什么问题(在一定程度上是肯定的),但是您将看到您可以根据下面的代码获得和保留一个较长的列表。首先,强制初始化:class Zillion:
# Init: simply set to zero.
def __init__(self):
self.data = [0]
现在,增加一个数字的代码。它简单地使用了任何一所像样的小学里教过的算法:
^{pr2}$
然后只需要一些测试工具代码,这样您就可以看到它的实际操作:# Code for debugging.
def output(self):
print self.data
# Test code here, show various increments.
if __name__ == "__main__":
z = Zillion()
for x in range(8): # -> 8
z.increment()
for x in range(13): # -> 21
z.output()
z.increment()
z.output()
print "==="
for x in range(999977): # -> 999,998
z.increment()
for x in range(13): # -> 1,000,011
z.output()
z.increment()
z.output()
运行该代码可以让您确信列表的长度会更改并正确地维护自身:[8]
[9]
[1, 0]
[1, 1]
[1, 2]
[1, 3]
[1, 4]
[1, 5]
[1, 6]
[1, 7]
[1, 8]
[1, 9]
[2, 0]
[2, 1]
===
[9, 9, 9, 9, 9, 8]
[9, 9, 9, 9, 9, 9]
[1, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 2]
[1, 0, 0, 0, 0, 0, 3]
[1, 0, 0, 0, 0, 0, 4]
[1, 0, 0, 0, 0, 0, 5]
[1, 0, 0, 0, 0, 0, 6]
[1, 0, 0, 0, 0, 0, 7]
[1, 0, 0, 0, 0, 0, 8]
[1, 0, 0, 0, 0, 0, 9]
[1, 0, 0, 0, 0, 1, 0]
[1, 0, 0, 0, 0, 1, 1]