案例:python中实现51备忘录,python备忘录,1.添加Memo类,
案例:python中实现51备忘录,python备忘录,1.添加Memo类,
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 pickleclass 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._idclass 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:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):1name:马云thing:明天来广州date:2018项目1{‘id‘: 1, ‘name‘: ‘马云‘, ‘thing‘: ‘明天来广州‘, ‘date‘: ‘2018‘}增加成功--------------------欢迎使用51备忘录---------------------1:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):1name:高圆圆thing:明天来武汉date:2018项目1{‘id‘: 1, ‘name‘: ‘马云‘, ‘thing‘: ‘明天来广州‘, ‘date‘: ‘2018‘}项目2{‘id‘: 2, ‘name‘: ‘高圆圆‘, ‘thing‘: ‘明天来武汉‘, ‘date‘: ‘2018‘}增加成功--------------------欢迎使用51备忘录---------------------1:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):2请选择你将要删除的记录(示例 1或者2或者3 ):1删除成功项目1{‘id‘: 2, ‘name‘: ‘高圆圆‘, ‘thing‘: ‘明天来武汉‘, ‘date‘: ‘2018‘}--------------------欢迎使用51备忘录---------------------1:Add2:Dele3:Modify4:Query5:Save6: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:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):5保存成功--------------------欢迎使用51备忘录---------------------1:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):6[{‘id‘: 2, ‘name‘: ‘高圆圆‘, ‘thing‘: ‘明天来武汉‘, ‘date‘: ‘2018/4/1‘}]下载成功--------------------欢迎使用51备忘录---------------------1:Add2:Dele3:Modify4:Query5:Save6:Load请选择你的操作选项 (示例 1):9结束
案例:python中实现51备忘录
相关内容
- centos6.5下安装OpenCV+Python支持,centos6.5opencv,Python调用o
- python-nmap使用方法(python3),python-nmappython3,nmap是一个
- Python中使用面状矢量裁剪栅格影像,并依据Value值更改
- python3.6 安装pyhook_3,python3.6pyhook_3,首先是根据网上的资
- python openpyxl安装,pythonopenpyxl,windows下:1
- pxssh模块——python,pxsshpython,1、描述:pxssh
- 用Python脚本监测.py脚本的进程状态,并实现中断重启。
- python操作mysql数据库(一),pythonmysql,最近又开始重新
- ARP扫描渗透测试 scapy模块 使用python,scapypython,ARP扫描渗
- python 二维数组键盘输入,python二维数组,1 m = int(
评论关闭