案例:python中实现51备忘录
2018-06-10 08:14
330 查看
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 结束
相关文章推荐
- Selenium测试案例一步步学之(1)Python语言实现QQ邮箱登录查看非阅读邮件
- 基于Python实现头像戴上圣诞帽案例
- 利用python实现批量自动化运维脚本案例
- 决策树分类算法及python代码实现案例
- 【Python学习系列十】Python机器学习库scikit-learn实现Decision Trees案例
- Python socket套接字实现C/S模式远程命令执行功能案例
- python数据挖掘案例系列教程——python实现搜索引擎
- Python3 初学实践案例(6)终极 CLI 密码生成程序实现
- 朴素贝叶斯分类算法原理与Python实现与使用方法案例
- 长短时记忆网络(LSTM)的内部结构详解以及基于python 的实现案例
- Python案例之QQ空间自动登录程序实现
- python 决策树实现案例
- python学习之路之案例1(修改haproxy的配置文件,并实现下线、上线的功能)
- python基于selenium+PhantomJS实现搜索交互案例
- Python采集案例:Python实现爬取知乎神回复简单爬虫代码
- Python实现数据结构(第7章 急症室调度案例)
- 机器学习基础篇--监督学习经典案例(Python实现)
- SFTP基于Key多进程批量并发上传文件实现案例(python)
- 2、 python文本关键词提取实现(案例)
- LeetCode 51. N-Queens--Python实现