Python實現(xiàn)歷史記錄功能(實際案例)
1、如何實現(xiàn)用戶的歷史記錄功能(最多n條)
實際案例:
很多應用程序都有瀏覽用戶的歷史記錄的功能,
例如:
瀏覽器可以查看最近訪問過的網(wǎng)頁;
視頻播放器可以查看最近播放過視頻文件;
Shell可以查看用戶輸入過的命名;
... ...
現(xiàn)在我們制作了一個簡單的猜數(shù)字的小游戲,添加歷史記錄功能,顯示用戶最近猜過的數(shù)字,如何實現(xiàn)?
注:歷史記錄不能是無限條需要加限定。只顯示最近5次的歷史記錄,其它的拋棄掉。
解決方案:
使用容量為n的隊列存儲歷史記錄
使用標準庫collections中的deque,它是一個雙端循環(huán)隊列。
程序退出前,可以使用pickle將隊列對象存入文件,再次運行程序時將其導入。
2、代碼演示
(1)deque雙端隊列簡單使用
from collections import deque # 創(chuàng)建帶有容量的隊列 q = deque([], 5) # 一次添加多個元素 a = [1, 2, 3, 4, 5] q.extend(a) print(q) # 添加第6個元素,查看隊列時發(fā)現(xiàn)第1個元素已經(jīng)被擠出去了 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)實現(xiàn)猜數(shù)字游戲的歷史記錄
from random import randint
from collections import deque
import pickle
# 猜數(shù)字游戲,首先產(chǎn)生一個0到100數(shù)字,然后讓用戶猜
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)
# 記錄用戶輸入數(shù)字
history.append(k)
if guess(k):
break
elif line == 'history' or line == 'h?':
# 用戶可以輸入命令查看歷史記錄
print(list(history))
# 將歷史記錄保存到文件中
pickle.dump(history, open('history', 'wb'))到此這篇關(guān)于Python實現(xiàn)歷史記錄功能的文章就介紹到這了,更多相關(guān)Python歷史記錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python在windows下實現(xiàn)ping操作并接收返回信息的方法
這篇文章主要介紹了python在windows下實現(xiàn)ping操作并接收返回信息的方法,實例分析了Python實現(xiàn)ping操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
Python?OpenCV實現(xiàn)簡單的顏色識別功能(對紅色和藍色識別并輸出)
Python?OpenCV可以用來進行顏色識別,可以通過讀取圖像的像素值,來判斷像素點的顏色,從而實現(xiàn)顏色識別,這篇文章主要給大家介紹了關(guān)于Python?OpenCV實現(xiàn)簡單的顏色識別功能(對紅色和藍色識別并輸出)的相關(guān)資料,需要的朋友可以參考下2023-12-12
tensorflow實現(xiàn)在函數(shù)中用tf.Print輸出中間值
今天小編就為大家分享一篇tensorflow實現(xiàn)在函數(shù)中用tf.Print輸出中間值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
分享一枚pycharm激活碼適用所有pycharm版本我的pycharm2020.2.3激活成功
這篇文章主要分享一枚pycharm激活碼適用所有pycharm版本我的pycharm2020.2.3激活成功,需要的朋友可以參考下2020-11-11

