需求:
很多应用程序都有浏览用户的历史记录的功能,例如:
1、浏览器可以查看最近访问的网页
2、视频播放器可以查看最近播放过的视频文件
3、shell可以查看用户输入过的命令
现在我们制作一个简单的猜数字的小游戏,
如何添加用户的历史记录功能,显示用户最近猜过的数字?
思路:
使用容量为n的队列来存储历史记录
使用标准库的中collections的deque,它是一个双端循环队列
使用pickle模块将历史记录存储到硬盘,以便下次启动再用
代码:
#!/usr/bin/python3
from random import randint
from collections import deque
import pickle,os
def guess(n,k):
if n == k:
print(‘猜对了,这个数字是%d.‘ % k)
return True
if n < k:
print(‘猜大了,比%d小.‘ % k)
elif n > k:
print(‘猜小了,比%d大.‘ % k)
return False
def main():
n = randint(1,100)
i = 1
hq = deque([],5)
if os.path.exists(‘history.pkl‘):
hq = pickle.load(open(‘history.pkl‘,‘rb‘))
while True:
line = input(‘[%d] 请输入一个数字:‘ % i)
if line.isdigit(): # 判断字符串是否是只由数字组成
k = int(line)
hq.append(k)
i += 1
if guess(n,k):
break
elif line == ‘quit‘:
pickle.dump(hq,open(‘history.pkl‘,‘wb‘)) # 将历史记录保存到本地的文件中,以便下次运行还可以进行查看
break
elif line == ‘h?‘:
print(list(hq))
if __name__ == ‘__main__‘:
main()
原文:https://www.cnblogs.com/Richardo-M-Q/p/13902899.html