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

来源:互联网 发布:linux基础试题 编辑:程序博客网 时间:2024/05/16 01:58

一,简介

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

二,关键技术讲解

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

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

三,效果演示

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

============= 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:退出程序====================

四,源代码

一切尽在注释中

#---------------------------------------------------------#程序信息#账户管理器 V2版本 文件存储版本#maoge 2017.6.29import 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)
原创粉丝点击