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