1. 程式人生 > >案例:python中實現51備忘錄

案例:python中實現51備忘錄

python

1.添加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備忘錄