【发布时间】:2014-01-21 18:10:31
【问题描述】:
我正在尝试制作打印a 到zzz 的所有可能组合的程序。我尝试添加一个保存状态功能,它工作正常,但有这个错误。
假设我在打印e 之类的内容时中断了程序。当我再次执行该程序时,它在z 之前工作正常,但在z 之后而不是打印aa 它打印ba 并从ba 继续。这也发生在它打印zz 之后。它打印baa 而不是aaa。我该如何解决这个问题?
这是我到目前为止所做的:
import pickle,os,time
alphabet="abcdefghijklmnopqrstuvwxyz"
try:
if os.path.isfile("save.pickle")==True:
with open("save.pickle","rb") as f:
tryn=pickle.load(f)
for i in range(3):
a=[x for x in alphabet]
for j in range(i):
a=[x+i for x in alphabet for i in a]
b=a[tryn:]
for k in b:
print(k)
time.sleep(0.01)
tryn+=1
else:
tryn=0
for i in range(3):
a=[x for x in alphabet]
for j in range(i):
a=[x+i for x in alphabet for i in a]
for k in a:
print(k)
tryn+=1
time.sleep(0.01)
except KeyboardInterrupt:
with open("save.pickle","wb") as f:
pickle.dump(tryn,f)
【问题讨论】:
-
使用更深的缩进。 4 个空格是推荐的大小。这很难阅读。
标签: python list python-3.x combinations