如何实现用户的历史记录
先写个猜数字的小程序:
from random import randint
n=randint(0,100)
def guess(k):
if k==n:
print 'right'
return True
if k <n:
print '%s is less than n'%k
else:
print '%s is more than n'%k
return False
while True:
line =raw_input('please input a number:')
if line.isdigit():
k=int(line)
if guess(k):
break
这里是一个猜数字的小程序,现在需要增加一个猜数字的历史记录:
涉及到两个类的使用:
1.collections.deque 设置一个队列来存储猜数字的历史记录(先进先出,设定一个max值来存几条记录),发现collections这个库功能杠杠的~
2.pickle 类用到pickle里面的dump函数将历史记录写到具体文件中
实现历史记录的保存,具体改完的代码如下:
from random import randint
from collections import deque
import pickle
n=randint(0,100)
#建一个长度为4的队列
d=deque([],4)
def guess(k):
if k==n:
print 'right'
return True
if k <n:
print '%s is less than n'%k
else:
print '%s is more than n'%k
return False
while True:
line =raw_input('please input a number:')
if line.isdigit():
k=int(line)
d.append(k)
if guess(k):
break
#将队列的记录写到文件
pickle.dump(d,open('history.txt','w'))
elif line == 'history' or line=='h?':
#从文件读记录
p=pickle.load(open('history.txt'))
print p