py程式設計技巧-1.7-如何實現使用者歷史記錄儲存(最多n條)
實際案例:
很多應用程式都自帶一個瀏覽使用者的歷史記錄的功能
例如:
- 瀏覽器歷史記錄
- 視訊播放歷史記錄
- shell檢視使用者輸入過的命令
現在我們製作了一個簡單的猜數字大小的小遊戲
新增歷史記錄功能,顯示使用者最近猜過的數字如何實現?
解決方案:
使用容量為n的佇列來儲存歷史記錄
- 使用標準庫collections中的deque,他是一個雙端迴圈佇列
- 程式退出前,可以使用pickie將佇列物件存入檔案,再次執行時程式將其匯入
猜數小遊戲:
from random import randint
Num = randint(0,100)
def guess(k):
if k == Num:
print "success"
return True
elif k > Num:
print "the number is bigger"
else:
print "the number is smaller"
return False
while True:
line = raw_input("please input a number(1~100)")
# line是一個字串,通過isdigit()方法來看這個字串是不是一個數字
if line.isdigit():
k = int(line)
if guess(k):
break
佇列小例子:
# 使用佇列
from collections import deque
# deque傳入兩個引數:1.初始值;2.佇列長度
q = deque([],5)
# append方法從右部新增
q.append(1)
q.append(2)
q.append(3)
q.append(4)
q.append(5)
q.append(6)
print q
加上了歷史記錄的猜數字小遊戲:
from collections import deque
from random import randint
Num = randint(0,100)
history = deque([], 5)
def guess(k):
if k == Num:
print "success"
return True
elif k > Num:
print "the number is bigger"
else:
print "the number is smaller"
return False
while True:
line = raw_input("please input a number(1~100):")
if line.isdigit():
k = int(line)
history.append(k)
if guess(k):
break
elif line == 'history' or line == 'h?':
print list(history)
else:
print 'input error'
將物件儲存進檔案進行持久化
import pickle
from collections import deque
q = deque([3,4,5,6,7])
# dump()方法傳入兩個引數: 1.一個是要儲存的物件;2.一個可寫的檔案物件
pickle.dump(q,open('history','w'))
q2 = pickle.load(open('history'))
print q2
cmd亂碼修改
chcp 936 #utf-8輸出
相關文章
- 視訊直播原始碼,實現本地儲存搜尋歷史記錄原始碼
- 實現使用者的歷史記錄功能
- 【rlwrap】Linux上實現Windows的SQL*Plus儲存SQL歷史記錄功能LinuxWindowsSQL
- QQ聊天記錄儲存如何實現?
- Android EditText輸入框實現下拉且儲存最近5個歷史記錄Android
- Linux上實現Windows的SQL*Plus儲存SQL歷史記錄功能---rlwrap(轉)LinuxWindowsSQL
- win10執行記錄不儲存怎麼辦 win10執行儲存歷史記錄設定方法Win10
- Linux檢視歷史記錄小技巧Linux
- Win10執行無法儲存歷史記錄怎麼辦 win10開始執行記錄不儲存如何解決Win10
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- TcxMRUEdit 最近歷史記錄
- 歷史庫存監控表的設計
- win10怎麼清除更新歷史記錄 win10電腦如何清除更新歷史記錄Win10
- 圖文細說計算機儲存器的歷史計算機
- git重寫歷史記錄Git
- win10如何關閉工作列歷史記錄_win10工作列歷史記錄怎麼關閉Win10
- RocketMQ 多級儲存設計與實現MQ
- 如何刪除遠端桌面歷史連線記錄
- win10如何關閉活動歷史記錄_win10系統關閉活動歷史記錄的步驟Win10
- SAP歷史更改記錄函式函式
- win10怎樣看歷史記錄_win10檢視歷史記錄的方法Win10
- nuget預設儲存目錄如何修改?
- chrome devtool 開發者工具 控制檯歷史、斷點歷史 匯出全部、儲存Chromedev斷點
- 蘋果MacOS之顯示隱藏檔案及Terminal 無法儲存歷史記錄問題蘋果Mac
- 在MySQL中,如何實現Top N及M至N段的記錄查詢?MySql
- 實現鍵值對儲存(四):API設計API
- 《程式設計時間簡史系列》JavaScript 模組化的歷史程式程式設計JavaScript
- 重灌系統如何儲存qq聊天記錄
- 小程式 LRU 儲存設計
- SAP WM 有無儲存WM Level歷史庫存的Table?
- 我是程式設計師,我用這種方式銘記歷史程式設計師
- 圖的儲存與遍歷C++實現C++
- git log檢視提交歷史記錄Git
- 理解瀏覽器的歷史記錄瀏覽器
- 瀏覽器歷史記錄的返回瀏覽器
- EBS:銷售訂單歷史記錄
- linux 清空歷史執行記錄Linux
- Linux中多種方法實時記錄歷史命令Linux