Python高级编程技巧实战(7)如何实现用户的历史记录功能

本文介绍了一个简单的猜数字游戏,并实现了保存最近5次猜测数字的历史记录功能。使用Python的deque来存储历史记录,以便于管理和查看。此外,还介绍了如何使用pickle模块将这些历史记录持久化到磁盘上,以便在下次运行程序时能够继续使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何实现用户的历史记录功能

原始代码如下:

from random import randint

N = randint(0, 100)

def guess(k):
	if k == N:
		print('猜对了')
		return True
	elif k < N:
		print('猜小了')
	else:
		print('猜大了')
	return False

while True:
	line = input("please input a number:")
	if line.isdigit():
		k = int(line)
		if guess(k):
			break

我们希望保存最近 5 次猜的数字,之前的就被删除

解决方案:

使用容量为 n (本例中 n=5) 的队列存储历史记录

使用标准库中的 deque,它是一个双端循环队列

from random import randint
from collections import deque

history = deque([], 5)

N = randint(0, 100)

def guess(k):
	if k == N:
		print('猜对了')
		return True
	elif k < N:
		print('猜小了')
	else:
		print('猜大了')
	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(history)

若我们还希望 程序下次运行时,可以查看之前的历史记录,就需要将 队列对象 保存到磁盘,可以使用 pickle

pickle 可以将任意类型的数据(包括 数字型、列表、字典、字符串等)保存到磁盘文件,在需要的时候还可以正常读回为原数据

解决方案:程序退出前,可以使用 pickle 将队列对象存入文件,再次运行程序时将其导入

pickle 的用法:

写数据:

import pickle

data = [1, 2, 3, 4]

with open('data.dat', 'wb') as f:

    pickle.dump(data, f)

读数据:

import pickle

with open('data.dat', 'rb') as f:

    data = pickle.load(f)

print(data)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值