用Python怎样写浏览器的历史记录功能
Admin 2022-09-14 群英技术资讯 1402 次浏览
这篇文章给大家介绍了“用Python怎样写浏览器的历史记录功能”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。实际案例:
很多应用程序都有浏览用户的历史记录的功能,
例如:
浏览器可以查看最近访问过的网页;
视频播放器可以查看最近播放过视频文件;
Shell可以查看用户输入过的命名;
... ...
现在我们制作了一个简单的猜数字的小游戏,添加历史记录功能,显示用户最近猜过的数字,如何实现?
注:历史记录不能是无限条需要加限定。只显示最近5次的历史记录,其它的抛弃掉。
解决方案:
使用容量为n的队列存储历史记录
使用标准库collections中的deque,它是一个双端循环队列。
程序退出前,可以使用pickle将队列对象存入文件,再次运行程序时将其导入。
(1)deque双端队列简单使用
from collections import deque # 创建带有容量的队列 q = deque([], 5) # 一次添加多个元素 a = [1, 2, 3, 4, 5] q.extend(a) print(q) # 添加第6个元素,查看队列时发现第1个元素已经被挤出去了 q.append(6) print(q)
(2)pickle保存对象到文件中或读取文件中对象
q = deque([1, 2, 3, 4, 5], maxlen=5)
# 存储对象到文件
pickle.dump(q, open('history', 'wb'))
# 读取文件中对象
q2 = pickle.load(open('history', 'rb'))
print(q2)
(3)实现猜数字游戏的历史记录
from random import randint
from collections import deque
import pickle
# 猜数字游戏,首先产生一个0到100数字,然后让用户猜
N = randint(0, 100)
print('答案:' + str(N))
# 初始化队列,容量为5
history = deque([], 5)
# 读取文件中的历史记录
history = pickle.load(open('history', 'rb'))
print(history)
def guess(k):
if k == N:
print('right')
return True
if k < N:
print('%s is less-than N' % k)
else:
print('%s is greater-than N' % k)
return False
while True:
line = input("Please input a number: ")
if line.isdigit():
k = int(line)
# 记录用户输入数字
history.append(k)
if guess(k):
break
elif line == 'history' or line == 'h?':
# 用户可以输入命令查看历史记录
print(list(history))
# 将历史记录保存到文件中
pickle.dump(history, open('history', 'wb'))
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
内存映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用户都能很方便的直接访问内存。
PyTorch出现平方根报错是什么原因?一些朋友遇到在使用PyTorch进行平方根计算时,出现平方根报错的情况,那么这时我们应该怎样解决呢?接下来小编就和大家一样探讨看看。
这篇文章主要介绍了python 实现列表的切片操作允许索引超出范围,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Python在很大程度上可以对shell脚本进行替代。笔者一般单行命令用shell,复杂点的多行操作就直接用Python了。这篇文章就归纳一下Python的一些实用脚本操作。
Python中的数据类型有:数字类型,元组类型,布尔类型,集合类型,列表类型,字典类型,字符串类型;其中,列表类型,字典类型,字符串类型 比较复杂。这篇我们先来看数字类型,元组类型,布尔类型,集合类型这几种
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008