首页 > 其他 > 详细

如何实现用户的历史记录功能(最多n条)?

时间:2020-10-30 19:04:44      阅读:29      评论:0      收藏:0      [点我收藏+]

需求:
很多应用程序都有浏览用户的历史记录的功能,例如:
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()

如何实现用户的历史记录功能(最多n条)?

原文:https://www.cnblogs.com/Richardo-M-Q/p/13902899.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!