案例:python中實現51備忘錄
阿新 • • 發佈:2018-06-10
python1.添加Memo類,至少包含id,name,thing,date四個屬性,date可以暫時使用字符串表示,比如‘1.2’,‘3.8’,暫時不用考慮時間相關模塊
2.id屬性為只讀,其他屬性可讀寫
3.添加MemoAdmin類,作為主體程序,管理Memo類構成的列表,進行Memo的增刪改查(相應方法為add, del, modify, query),處理輸入輸出。
4.所有Memo記錄使用pickle進行讀寫,數據文件為db.pkl, 讀寫方法為save和load
5.各個類中的每個方法必須添加說明doc-string(即def下一行加一句註釋),
#!/user/bin/env Python # _*_ coding:utf-8 _*_ # 51memo.py # author:大寶dayday見 import pickle class Memo: def __init__(self,name,thing,date): self._id = 0 self.name = name self.thing = thing self.date = date def talk(self): self._id += 1 self.name = input(‘name:‘) self.thing = input(‘thing:‘) self.date = input(‘date:‘) one = {‘id‘:self.id,‘name‘:self.name,‘thing‘:self.thing,‘date‘:self.date} R.add(one) @property def id(self): # 只讀 return self._id class MemoAdmin: """管理記錄""" def __init__(self,memo_list,dir): # 初始化數據 self.dir = dir self.memo_list = memo_list def welcome(self): print(‘歡迎使用51備忘錄‘.center(50,‘-‘)) for k,v in self.dir.items(): print(f‘{k}:{v}‘) # 打印選擇選項 select = input(‘請選擇你的操作選項 (示例 1):‘) return select def add(self,one): # 增加方法 self.memo_list.append(one) R.query() print(‘增加成功‘) def dele(self): # 刪除方法 temp = input(‘請選擇你將要刪除的記錄(示例 1或者2或者3 ):‘) self.memo_list.pop(int(temp)-1) print(‘刪除成功‘) R.query() def modify(self): # 修改方法 temp1 = input(‘請輸入你要修改的記錄(示例 1或者2或者3):‘) temp2 = input(f‘你要修改的記錄是{self.memo_list[int(temp1)-1]},請輸入要修改的值(示例:name:zhangsan):‘) temp3 = temp2.split(‘:‘) self.memo_list[int(temp1)-1][temp3[0]] = temp3[1] # 列表中找出嵌套的字典key和value print(‘修改成功‘) R.query() def save(self): # 數據保存在文件內 with open(‘db.pkl‘,‘wb‘) as f: f.write(pickle.dumps(memo_list)) print(‘保存成功‘) def load(self): # 下載文件 with open(‘db.pkl‘,‘rb‘) as f: data = pickle.loads(f.read()) print(data) print(‘下載成功‘) def query(self): # 查詢所有數據 i = 0 for k in memo_list: i += 1 print(f‘項目{i}{k}‘) memo_list = [] dir = {‘1‘:‘Add‘, ‘2‘:‘Dele‘, ‘3‘:‘Modify‘, ‘4‘:‘Query‘, ‘5‘:‘Save‘, ‘6‘:‘Load‘ } L = Memo(‘周傑倫‘,‘明天來廣州‘,‘2018‘) R = MemoAdmin(memo_list,dir) while True: t = R.welcome() if t == ‘1‘: L.talk() elif t == ‘2‘: R.dele() elif t == ‘3‘: R.modify() elif t == ‘4‘: R.query() elif t == ‘5‘: R.save() elif t == ‘6‘: R.load() else: print(‘結束‘) break
--------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):1 name:馬雲 thing:明天來廣州 date:2018 項目1{‘id‘: 1, ‘name‘: ‘馬雲‘, ‘thing‘: ‘明天來廣州‘, ‘date‘: ‘2018‘} 增加成功 --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):1 name:高圓圓 thing:明天來武漢 date:2018 項目1{‘id‘: 1, ‘name‘: ‘馬雲‘, ‘thing‘: ‘明天來廣州‘, ‘date‘: ‘2018‘} 項目2{‘id‘: 2, ‘name‘: ‘高圓圓‘, ‘thing‘: ‘明天來武漢‘, ‘date‘: ‘2018‘} 增加成功 --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):2 請選擇你將要刪除的記錄(示例 1或者2或者3 ):1 刪除成功 項目1{‘id‘: 2, ‘name‘: ‘高圓圓‘, ‘thing‘: ‘明天來武漢‘, ‘date‘: ‘2018‘} --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):3 請輸入你要修改的記錄(示例 1或者2或者3):1 你要修改的記錄是{‘id‘: 2, ‘name‘: ‘高圓圓‘, ‘thing‘: ‘明天來武漢‘, ‘date‘: ‘2018‘},請輸入要修改的值(示例:name:zhangsan):date:2018/4/1 修改成功 項目1{‘id‘: 2, ‘name‘: ‘高圓圓‘, ‘thing‘: ‘明天來武漢‘, ‘date‘: ‘2018/4/1‘} --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):5 保存成功 --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):6 [{‘id‘: 2, ‘name‘: ‘高圓圓‘, ‘thing‘: ‘明天來武漢‘, ‘date‘: ‘2018/4/1‘}] 下載成功 --------------------歡迎使用51備忘錄--------------------- 1:Add 2:Dele 3:Modify 4:Query 5:Save 6:Load 請選擇你的操作選項 (示例 1):9 結束
案例:python中實現51備忘錄