Python学习笔记(19)-账户管理器Version2.0

简介: 本文目录1. 简介2. 关键技术讲解3. 效果演示4. 源代码

1. 简介

本篇实现一个可以将数据持久化到文件中存储的账户管理器。


2. 关键技术讲解

1,global关键字,负责制定要引用的变量是全局变量,如果不使用global,将导致在def中定义新的局部变量,而不是引用全局变量


2,数据存储在全局变量accounts中,在程序一开始从文件读取accounts,然后可以进行相应的查询、删除、新增账户,并可以保存到文件。


3. 效果演示

这个界面设计水平在控制台程序中还算可以的,哈哈

============= RESTART: D:/Python/Python3.6.1/AccountManagerV2.py =============
欢迎使用稍微有一点完善的账户管理器V2版本
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
2
可以输入#账户名#密码新增账户
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
#猫哥#123
添加账户成功!
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
#小蛋#123
添加账户成功!
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
1
========账户列表如下
猫哥
小蛋
可以输入@+账户名称,查询账户密码
========
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
@猫哥
猫哥账户的密码为:123
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================
4
已保存到文件
====================
请选择操作
1:查看账户列表
2:新增账户
3:删除账户
4:保存到文件
5:退出程序
====================

4. 源代码

一切尽在注释中

#---------------------------------------------------------#程序信息
#账户管理器 V2版本 文件存储版本
#maoge 2017.6.29
import os,sys
#---------------------------------------------------------#变量定义
accounts={}
fileName="C:\\account.txt";
#---------------------------------------------------------#函数定义
#界面显示
def show():
    print("====================")
    print("请选择操作")
    print("1:查看账户列表")
    print("2:新增账户")
    print("3:删除账户")
    print("4:保存到文件")
    print("5:退出程序")
    print("====================")
    return input()
#读取文件
def readFile(fileName):
    if os.path.isfile(fileName)==True:#文件存在  
        file=open(fileName,"r")
        global accounts
        accounts=eval(file.read())
        for temp in accounts.keys():
            print(temp)
        file.close();
#写入文件
def writeFile(fileName):
    file=open(fileName,"w")#w表示写 a表示追加模式
    global accounts
    file.write(str(accounts));
    file.close()#读写完毕一定要关闭文件对象
#显示已有账户信息
def showAccounts():
    if len(accounts)==0:
        print("暂无账户")
    else:
        print("========账户列表如下")
        for temp in accounts.keys():
            print(temp)
        print("可以输入@+账户名称,查询账户密码")
        print("========")
#处理无效指令及@指令
def dealAt(user):
    if user.startswith("@"):
        str=user.lstrip("@")
        if str not in accounts.keys():
            print("查无此账户!")
        else:
            print(str+"账户的密码为:"+accounts[str])
    elif user.startswith("$"):
        str=user.lstrip("$")
        if str not in accounts.keys():
            print("查无此账户!")
        else:
            accounts.pop(str)
            print("删除账户成功!")
    elif user.startswith("#"):
        str=user.lstrip("#")
        username=str.split("#")[0]
        userpass=str.split("#")[1]
        accounts[username]=userpass
        print("添加账户成功!")
    else:
        print("无效指令!")
#---------------------------------------------------------#主程序
print("欢迎使用稍微有一点完善的账户管理器V2版本")
readFile(fileName)
while(True):
    user=show()
    if user=="5":
        print("欢迎您下次使用")
        sys.exit()
    elif user=="1":
        showAccounts()
    elif user=="2":
        print("可以输入#账户名#密码新增账户")
    elif user=="3":
        print("可以输入$账户名删除账户")
    elif user=="4":
        writeFile(fileName)
        print("已保存到文件")
    else:
        dealAt(user)


相关文章
|
14天前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
11天前
|
Python
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
|
2天前
|
Python
python3 入门学习笔记
python3 入门学习笔记
3 0
|
8天前
|
SQL 数据库连接 Python
python之with语句结合上下文管理器
python之with语句结合上下文管理器
|
14天前
|
Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-2
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
14天前
|
数据可视化 开发者 Python
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)-1
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
|
14天前
|
存储 API C语言
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-2
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
1月前
|
Python
Python学习 笔记(五) 判断语句
Python学习 笔记(五) 判断语句
32 3
|
1月前
|
开发工具 Python
2024年最新【Python】关于Python打开文件&&上下文管理器(1),2024华为Python面试真题解
2024年最新【Python】关于Python打开文件&&上下文管理器(1),2024华为Python面试真题解
2024年最新【Python】关于Python打开文件&&上下文管理器(1),2024华为Python面试真题解