开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9849|回复: 0
收起左侧

[源码分享] 利用Python实现账户管理系统

[复制链接]
发表于 2023-5-20 14:48:17 | 显示全部楼层 |阅读模式   湖北省武汉市
一:普通代码
[Python] 纯文本查看 复制代码
import sys
#导入原始列表
Data = [
    {"username": "张三", "password": "11235", "ident": "普通用户"},
    {"username": "李四", "password": "22344", "ident": "管理员"},
    {"username": "王五", "password": "48554", "ident": "会员"}
]
 
current_user = None #使开始运行程序时user状态为空
wrong_count = 0 #计错误次数
print("欢迎您使用XX登录系统,",end='')
while True:
    if current_user is None: #判断user状态是否为空
        username = input("请输入用户名:")
        password = input("请输入密码:")
        for d in Data: #在列表中核对username与password是否匹配
            if d["username"] == username and d["password"] == password:
                print("\033[31m登录成功!\033[0m")
                current_user = d
                print(f"当前用户:\033[31m{current_user['username']}\033[0m,用户身份为:\033[31m{current_user['ident']}\033[0m")
                break
        # for 临时变量 in 序列:
        #     重复执行的代码
        #     ......
        # else:
        #     循环正常结束后要执行的代码
        else:
            wrong_count += 1
            if 3-wrong_count!=0:
                print(f"用户名或密码错误!您还有{3-wrong_count}次机会,请重新输入!")
            if wrong_count >= 3:
                print("\033[31m输入密码错误次数过多,程序退出!\033[0m")
                break
            continue
 
    print("请选择操作:")
    print("1. 添加用户")
    print("2. 删除用户")
    print("3. 修改用户权限")
    print("4. 修改用户密码")
    print("5. 修改用户名")
    print("6. 退出登录")
    print("7. 退出程序")
    print("8. 打印所有账户")
    choice = input("请输入您的选择:")
    if choice == "1":
        if current_user["ident"] != "管理员":
            print("\033[31m只有管理员可以添加用户!\033[0m")
            continue
        username = input("请输入新用户的用户名:")
        for d in Data:
            if d["username"] == username:
                print("\033[31m该用户名已存在!\033[0m")
                break
        else:
            password = input("请输入新用户的密码:")
            ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
            Data.append({"username": username, "password": password, "ident": ident})
            print("添加用户成功!")
    elif choice == "2":
        if current_user["ident"] != "管理员":
            print("\033[31m只有管理员可以删除用户!\033[0m")
            continue
        username = input("请输入要删除的用户名:")
        for d in Data:
            if d["username"] == username:
                Data.remove(d)
                print("删除用户成功!")
                break
        else:
            print("\033[31m该用户名不存在!\033[0m")
    elif choice == "3":
        if current_user["ident"] != "管理员":
            print("只有\033[31m管理员\033[0m可以修改用户权限!")
            continue
        username = input("请输入要修改权限的用户名:")
        for d in Data:
            if d["username"] == username:
                ident = input("请输入新的权限身份(普通用户、管理员、会员):")
                d["ident"] = ident
                print("修改用户权限成功!")
                break
        else:
            print("\033[31m该用户名不存在!\033[0m")
    elif choice == "4":
        username = input("请输入要修改密码的用户名:")
        for d in Data:
            if d["username"] == username:
                password = input("请输入新的密码:")
                d["password"] = password
                print("修改密码成功!")
                break
        else:
            print("\033[31m该用户名不存在!\033[0m")
    elif choice == "5":
        if current_user["ident"] != "会员":
            print("只有\033[31m会员\033[0m可以修改自己的用户名!")
            continue
        for d in Data:
            if d["username"] == current_user["username"]:
                new_username = input("请输入新的用户名:")
                for d2 in Data:
                    if d2["username"] == new_username:
                        print("\033[31m该用户名已存在!\033[0m")
                        break
                else:
                    d["username"] = new_username
                    current_user = d
                    print("修改用户名成功!")
                    break
        else:
            print("\033[31m用户名不存在!\033[0m")
    elif choice == "6":
        current_user = None
        print("退出登录成功!")
    elif choice == "7":
        sys.exit(0)
    elif choice == "8":
        for u in Data:
            print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
    else:
        print("\033[31m输入有误,请重新输入!\033[0m")



二:函数
[Python] 纯文本查看 复制代码
#导入原始列表
Data=[
    {'username': '张三', 'password': '11235', 'ident': '普通用户','user_state':'1','error_time':0},
    {'username': '李四', 'password': '22344', 'ident': '管理员','user_state':'1','error_time':0},
    {'username': '王五', 'password': '48554', 'ident': '会员','user_state':'1','error_time':0}
]
 
def login():    #登录函数
    username = input('请输入账号:')
    #error_time = 0
    #while error_time<3: #判断错误次数
    for di in Data:
        if di['username'] == username:  #判断是否找到用户名
            if di['user_state']==0:
                print('该账户已冻结!')
                return None
            error_time = 0
            while error_time<3: #判断错误次数
                password=input(f'请输入用户名\'{username}\'的密码:')
                if password == di['password']:
                    print("登录成功!")
                    print(f"欢迎您,{di['username']},您的身份是{di['ident']}。")
                    return di
 
                else:
                    error_time+=1
                    if error_time>=3:
                        di['user_state']=0  #冻结账户
                        print('该账户已冻结!')
                        return None
                    access_time=3-error_time
                    print(f'用户名\'{username}\'的密码错误!您还剩余{access_time}次机会!')
    else:
        print('用户名不存在!')
        return None
 
def add_user(): #添加账户
    username = input("请输入新用户的用户名:")
    for u in Data:
        if u["username"] == username:
            print("账号已存在,添加失败!")
            return
    password = input("请输入新用户的密码:")
    ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
    user_info = {"username": username, "password": password, "ident": ident}
    Data.append(user_info)
    print("用户信息添加成功!")
 
def del_user(current_user): #删除用户
    username = input("请输入要删除的账号:")
    if current_user['username']!=username:
 
        for u in Data:
            if u["username"] == username:
                Data.remove(u)
                print("用户信息删除成功!")
                return
        print("未找到该用户信息!")
    else:
        print('管理员不可以删除自己的账户!')
        return
def modify_ident(current_user): #修改权限
    username = input("请输入要修改权限的账号:")
    if current_user['username'] != username:
        for u in Data:
            if u["username"] == username:
                ident = input("请输入新的身份:")
                u["ident"] = ident
                print("用户身份修改成功!")
                return
        print("未找到该用户信息!")
    else:
        print('管理员不可以修改自己的权限!')
        return
def modify_password(current_user):  #修改密码
    username = input("请输入要修改密码的账号:")
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" or current_user == u:
                password = input("请输入新的密码:")
                u["password"] = password
                print("密码修改成功!")
                return
            else:
                print("您只能修改自己的密码!只有管理员才可以任意修改密码!")
                return
    print("未找到该用户信息!")
def modify_username(current_user):  #修改账户用户名
    username = input("请输入您要修改的账号:")
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" or current_user == u and u['ident']=='会员':
                new_username = input("请输入新的用户名:")
                u["username"] = new_username
                print("用户名修改成功!")
                return
            else:
                print("只有管理员和会员才可以修改用户名!")
                return
    print("未找到该用户信息!")
def modify_state(current_user): #修改状态
    username = input("请输入您要修改的账号:")
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" and username!=current_user["username"]:
                new_state = input("请输入新的状态(1:解封 0:封禁):")
                if new_state=='1':
                    u["user_state"] = '1'
                    print('该账号已解封!')
                    return
                elif new_state=='0':
                    u["user_state"] = '0'
                    print('该账号已封禁!')
                    return
                else:
                    print("非法输入!")
                    return
            else:
                print("管理员不可以修改自己的状态!")
                return
    print("未找到该用户信息!")
 
def output_all_users(): #输出所有用户信息
    print("=" * 15)
    print("所有用户信息如下:")
    for u in Data:
        print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
 
def main():
    print("欢迎您使用XX登录系统,", end='')
    current_user=login()
    while True:
        while current_user == None:
            current_user = login()
        print("=" * 15)
        print("1. 添加用户信息")
        print("2. 删除用户信息")
        print("3. 修改用户权限")
        print("4. 修改用户密码")
        print("5. 修改用户名")
        print("6. 修改用户状态")
        print("7. 输出所有用户信息")
        print("8. 退出登录")
        print("9. 退出程序")
        print("=" * 15)
 
        choice = input("请输入您的选择:")
 
        if choice == "1":
            if current_user["ident"] != "管理员":
                print("您没有添加用户的权限!")
            else:
                add_user()
        elif choice == "2":
            if current_user["ident"] != "管理员":
                print("您没有删除用户的权限!")
            else:
                del_user(current_user)
        elif choice == "3":
            if current_user["ident"] != "管理员":
                print("您没有修改用户权限的权限!")
            else:
                modify_ident(current_user)
        elif choice == "4":
            modify_password(current_user)
        elif choice == "5":
            modify_username(current_user)
        elif choice == "6":
            if current_user["ident"] != "管理员":
                print("您没有修改用户的状态!")
            else:
                modify_state(current_user)
        elif choice == "7":
            if current_user["ident"] != "管理员":
                print("您没有查看所有用户信息的权限!")
            else:
                output_all_users()
        elif choice == '8':
            current_user = None
            print("退出登录成功!")
        elif choice == '9':
            print("退出程序成功!")
            return
 
if __name__ == '__main__':
    main()


三:文件
[Python] 纯文本查看 复制代码
#导入原始列表
import json
 
with open('../data.json', 'r', encoding='utf-8') as f:
    Data=json.load(f)
 
def login():    #登录函数
    username = input('请输入账号:')
    for di in Data:
        if di['username'] == username:  #判断是否找到用户名
            if di['user_state']==0:
                print('该账户已冻结!')
                return None
            error_time = 0
            while error_time<3: #判断错误次数
                password=input(f'请输入用户名\'{username}\'的密码:')
                if password == di['password']:
                    print("登录成功!")
                    print(f"欢迎您,{di['username']},您的身份是{di['ident']}。")
                    return di
 
                else:
                    error_time+=1
                    if error_time>=3:
                        di['user_state']=0  #冻结账户
                        print('该账户已冻结!')
                        return None
                    access_time=3-error_time
                    print(f'用户名\'{username}\'的密码错误!您还剩余{access_time}次机会!')
    else:
        print('用户名不存在!')
        return None
 
def add_user(): #添加账户
    username = input("请输入新用户的用户名:")
    if username=='Super':
        print('禁止添加Super账户!')
        return
    for u in Data:
        if u["username"] == username:
            print("账号已存在,添加失败!")
            return
    password = input("请输入新用户的密码:")
    ident = input("请输入新用户的权限身份(普通用户、管理员、会员):")
    user_info = {"username": username, "password": password, "ident": ident}
    Data.append(user_info)
    print("用户信息添加成功!")
 
def del_user(current_user): #删除用户
    username = input("请输入要删除的账号:")
    if username=='Super':
        print('禁止操作Super账户!')
        return
    if current_user['username']!=username:
 
        for u in Data:
            if u["username"] == username:
                Data.remove(u)
                print("用户信息删除成功!")
                return
        print("未找到该用户信息!")
    else:
        print('管理员不可以删除自己的账户!')
        return
def modify_ident(current_user): #修改权限
    username = input("请输入要修改权限的账号:")
    if username=='Super':
        print('禁止操作Super账户!')
        return
    if current_user['username'] != username:
        for u in Data:
            if u["username"] == username:
                ident = input("请输入新的身份:")
                u["ident"] = ident
                print("用户身份修改成功!")
                return
        print("未找到该用户信息!")
    else:
        print('管理员不可以修改自己的权限!')
        return
def modify_password(current_user):  #修改密码
    username = input("请输入要修改密码的账号:")
    if username=='Super':
        print('禁止操作Super账户!')
        return
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" or current_user == u:
                password = input("请输入新的密码:")
                u["password"] = password
                print("密码修改成功!")
                return
            else:
                print("您只能修改自己的密码!只有管理员才可以任意修改密码!")
                return
    print("未找到该用户信息!")
def modify_username(current_user):  #修改账户用户名
    username = input("请输入您要修改的账号:")
    if username=='Super':
        print('禁止操作Super账户!')
        return
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" or current_user == u and u['ident']=='会员':
                new_username = input("请输入新的用户名:")
                u["username"] = new_username
                print("用户名修改成功!")
                return
            else:
                print("只有管理员和会员才可以修改用户名!")
                return
    print("未找到该用户信息!")
def modify_state(current_user): #修改状态
    username = input("请输入您要修改的账号:")
    if username=='Super':
        print('禁止修改Super账户!')
        return
    for u in Data:
        if u["username"] == username:
            if current_user["ident"] == "管理员" and username!=current_user["username"]:
                new_state = input("请输入新的状态(1:解封 0:封禁):")
                if new_state=='1':
                    u["user_state"] = '1'
                    print('该账号已解封!')
                    return
                elif new_state=='0':
                    u["user_state"] = '0'
                    print('该账号已封禁!')
                    return
                else:
                    print("非法输入!")
                    return
            else:
                print("管理员不可以修改自己的状态!")
                return
    print("未找到该用户信息!")
 
def output_all_users(): #输出所有用户信息
    print("=" * 15)
    print("所有用户信息如下:")
    for u in Data:
        if u['username']=='Super':
            continue
        print(f"用户名:{u['username']},密码:{u['password']},身份:{u['ident']}")
 
def main():
    print("欢迎您使用XX登录系统,", end='')
    current_user=login()
    while True:
        while current_user == None:
            current_user = login()
        print("=" * 15)
        print("1. 添加用户信息")
        print("2. 删除用户信息")
        print("3. 修改用户权限")
        print("4. 修改用户密码")
        print("5. 修改用户名")
        print("6. 修改用户状态")
        print("7. 输出所有用户信息")
        print("8. 退出登录")
        print("9. 退出程序")
        print("=" * 15)
 
        choice = input("请输入您的选择:")
 
        if choice == "1":
            if current_user["ident"] != "管理员":
                print("您没有添加用户的权限!")
            else:
                add_user()
        elif choice == "2":
            if current_user["ident"] != "管理员":
                print("您没有删除用户的权限!")
            else:
                del_user(current_user)
        elif choice == "3":
            if current_user["ident"] != "管理员":
                print("您没有修改用户权限的权限!")
            else:
                modify_ident(current_user)
        elif choice == "4":
            modify_password(current_user)
        elif choice == "5":
            modify_username(current_user)
        elif choice == "6":
            if current_user["ident"] != "管理员":
                print("您没有修改用户的状态!")
            else:
                modify_state(current_user)
        elif choice == "7":
            if current_user["ident"] != "管理员":
                print("您没有查看所有用户信息的权限!")
            else:
                output_all_users()
        elif choice == '8':
            current_user = None
            print("退出登录成功!")
        elif choice == '9':
            with open('../data.json', 'w', encoding='utf-8') as z:
                Da=json.dumps(Data,ensure_ascii=False)
                z.write(Da)
            print("退出程序成功!")
            return
 
if __name__ == '__main__':
    main()

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表