欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)歷史記錄功能(實(shí)際案例)

 更新時(shí)間:2022年04月29日 10:53:43   作者:AllardZhao  
很多應(yīng)用程序都有瀏覽用戶(hù)的歷史記錄的功能,瀏覽器可以查看最近訪問(wèn)過(guò)的網(wǎng)頁(yè),現(xiàn)在我們制作了一個(gè)簡(jiǎn)單的猜數(shù)字的小游戲,添加歷史記錄功能,顯示用戶(hù)最近猜過(guò)的數(shù)字,如何實(shí)現(xiàn)呢?跟隨小編一起看看吧

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)文章

最新評(píng)論