python高级(如何实现用户的历史记录功能)

很多应用程序都有浏览用户的历史记录功能,例如

浏览器可以查看最近访问过的网页

视频播放器可以查看最近播放过的视频

shell可以查看用户输入过的命令

制作一个简单的猜数字小游戏,添加历史功能记录,显示用户最近猜过的数字,如何实现?

from random import randint
from collections import deque   #从collections标准库中导入deque模块,该模块功能是可以自定义容器量,一旦容器量达到上限时,自动把最旧的值去除掉。

n = randint(0, 100)      #随机生成一个数字
history = deque([], 5)    #自定义deque容器,初始参数传入一个空列表,列表只能容纳5个元素

def guess(k):       #定义猜数字函数
    if k == n: 
        print('猜对了!')
        return True      #如果用户猜对了数字,返回真值退出程序
    if k < n:
        print('%s小了' % k)        #猜的数字小了,否则大了,返回假让用户重新输入数字
    else:
        print('%s大了' % k)
    return False

while True:
    number = input('请输入你猜的数字')
    if number.isdigit():     #判断用户输入的字符串类型是否为数字,如果是,进入下一步
        k = int(number)    #字符串转换数字类型

        history.append(k)    #把输入的记录添加到容器列表里
        if guess(k):     #调用函数,先退出当前循环
            break
    elif number == 'history':        #当用户输入history就打印deque列表显示历史输入记录
        print(list(history))

    else:

        print('格式有误,请输入数字')

        continue      #如果输入不是数字的话,再次循环让用户重新输入

 

import pickle      #为了不让再次打开程序时历史记录会消失,导入pickle模块把python对象存储进文件中

pickle.dump(history,open('history','w'))       #存储文件,文件名自定义

q2 = pickle.load(open('history'))     #读取文件

print(q2)

 

你可能感兴趣的:(python高级(一))