Python基础实践-密码管理系统实例
密码管理系统实例
需求分析:
1.主界面(选项:密码生成,密码查询,密码修改,密码删除)
2.密码生成:用户输入密码的描述,输入密码的长度,使用随机数生成一个比较复杂的密码,并且保存在列表中
3.密码查询,用户输入关键词,根据关键词,查询对应的
4.密码修改,先查询到,然后提示用户输入新的密码,确定后保存
5.密码删除,首先根据关键词查找到你的密码,然后确定删除后删除
001版本:面向过程版本
1.编写一个主函数,五个自定义函数,分别实现上述功能
2.使用list嵌套list存储每个密码项的关键词,使用list存储用户的密码
002版本:面向对象编程版本
1.首先有一个类,专门管理密码
2.密码管理者需要有五个方法,对应着上面的功能
3.管理的是密码对象,所以需要密码的类,对应密码本的一个个密码
003版本:TXT文件存储版本
1. 从002版本基础上改进
2. 进入函数先加载
3. 退出函数前保存
004版本:文件加密存储版本
1.从003版本改进
2.使用用户输入的密码解密文件,有异常则出错
3.退出前加密保存到文件
文件浏览项目:
001版本:递归显示文件夹下的所有文件:
使用一个函数,递归调用自身
002版本:生成器
使用生成器,每次yield一个文件名
003版本:区分广度优先搜索、深度优先搜索
使用生成器+堆/队列
004版本:文件判断
例如:如下图的文件夹形式,如果按照1234567,就是广度优先搜索(先搜索同级,再去搜索下一级)。如果按照1245367,就是深度优先搜索(一路挖到底,然后回来继续挖)
![](https://img2018.cnblogs.com/blog/1654874/201904/1654874-20190408231538687-1236479332.jpg)
堆栈、队列
栈,先进后出,像杯子一样
队列,先进先出,像排队一样