如何實現使用者的歷史記錄功能(最多n條)

2021-08-04 05:05:57 字數 1783 閱讀 5920

實際案例

很多應用程式都有瀏覽使用者的歷史記錄的功能,如:

現在我們製作了乙個簡單的猜數字的小遊戲,新增歷史記錄功能,顯示使用者最近猜過的數字,如何實現?小遊戲**如下:

# -*- coding: utf-8 -*-

from random import randint

n = randint(0, 100)

defguess

(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 = raw_input("please input a number: ")

# 判斷使用者輸入的資料是否為數字

if line.isdigit():

k = int(line)

if guess(k):

break

使用者猜數字,一遍猜中的概論是很低很低的,所以使用者猜數字要猜很多很多遍才可能猜中。在猜數字的過程中,由於使用者猜的數字次數很多,以至於使用者會忘記猜過的數字。因此,我們是有必要新增歷史記錄功能的。這裡為了簡化操作,只顯示使用者最近輸入的5個數字。

那如何實現這一功能呢?我們可以使用容量為n的佇列儲存歷史記錄:

**如下:

# -*- coding: utf-8 -*-

import pickle

from random import randint

from collections import deque

n = randint(0, 100)

history = deque(, 5)

defguess

(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:

try:

# 匯入使用者猜數字的歷史記錄

history = pickle.load(open('history'))

line = raw_input("please input a number: ")

except:

line = raw_input("please input a number: ")

# 判斷使用者輸入的資料是否為數字

if line.isdigit():

k = int(line)

# 將使用者歷史記錄儲存至history檔案中

pickle.dump(history, open('history', 'w'))

if guess(k):

break

# 使用者檢視歷史記錄

elif line == 'history'

or line == 'his?':

print list(history)

如何實現使用者的歷史記錄功能 最多n條 ?

現在我們製作乙個簡單的猜數字的小遊戲,如何新增使用者的歷史記錄功能,顯示使用者最近猜過的數字?思路 使用容量為n的佇列來儲存歷史記錄 使用標準庫的中collections的deque,它是乙個雙端迴圈佇列 使用pickle模組將歷史記錄儲存到硬碟,以便下次啟動再用 usr bin python3 f...

用佇列實現使用者的歷史記錄功能(最多n條)?

zero,one,two,three,fous,five,six,seven,eight,nine range 10 author cairo 用佇列實現使用者的歷史記錄功能 最多n條 實際案例 猜數字小遊戲 新增歷史記錄功能,顯示使用者最近的狀態 from collections import d...

yum history 歷史記錄功能

現在的 yum 帶有歷史記錄功能,可以檢視過往的事務,重做或回滾這些事務.顯示事務的命令是 yum history 在歷史中搜尋某個軟體包是 yum history list x 顯示某個事務的詳細資訊用 yum history info n n是事務編號,重做是 yum history redo ...