python 用户信息管理系统【各个函数剖析 + 完整代码 零基础适用篇】

2023-11-04

        这个用户管理系统小白也能轻松掌握,只用了函数,用户信息只有两个:姓名(账号)和密码,采用字典存放数据,字典的键即为姓名,值为密码,功能分为两大部分,第一部分为用户的登录和注册,第二部分为管理员对信息的增删查改操作,以下为文章目录:

文章目录:

 主选择界面:

主界面效果:

主界面函数:choose0()

 选择一:用户的登录与注册:

登录注册选择页面效果:

登录页面效果: 

注册页面效果:

注册条件功能效果:

敏感词判断:

 密码纯数字纯字母判断:

密码长度判断:

 登录注册函数:useroption()

 选择二:管理员增删查改信息

管理员选项页面:

管理员选项页面效果: 

管理员选项函数:addminiter()

管理员操作一: 增加用户信息

增加用户效果:

管理员操作二:删除用户信息 

 删除用户函数:deluser()

 管理员操作三:改变用户信息

改变用户效果:

改变用户信息函数 :changeuser()

管理员操作四:显示用户信息 

显示信息效果:

显示信息函数: showuser()

 完整代码:


 主选择界面:

主界面效果:

可以输入 1 或 2 来选择你想要登录注册还是管理员管理

主界面函数:choose0()

def choose0():
    print('-------- 图书馆借阅管理系统 --------')
    print('--------- 1.用户登录/注册  --------')
    print('--------- 2.管理员界面     -------')
    choose1 = int(input('请选择用户登录注册或是管理员登录:'))
    print(end='\n')
    if choose1 == 1:
        useroption()
    elif choose1==2:
        addminiter()
    else:
        print('您选择的信息有误')


 选择一:用户的登录与注册:

该区域实现了用户的登录与注册,登录与注册放在了一个函数中,但是展示还是分开展示

登录注册选择页面效果:

登录页面效果: 

注册页面效果:

        注册页面还有其他条件功能:例如注册密码为全数字或全字母,则不符合,如果注册的姓名有脏字,则不符合,如果密码长度小于六位,也不符合等等

注册条件功能效果:

敏感词判断:

 密码纯数字纯字母判断:

密码长度判断:

 登录注册函数:useroption()

def useroption():
    print('--------- 用户登录注册 ----------')
    print('--------- 1.登录用户 -----------')
    print('--------- 2.注册用户 -----------')
    choose = int(input('请输入您的选择:'))
    if choose == 1:
        flag1 = 3
        while flag1:
            uname = input("--------- 请输入您的用户名:")
            if uname not in user:
                flag1 = flag1 - 1
                print('--------- 您输入的用户名不存在!您还剩下', flag1, '次输入机会')
                continue
            else:
                break
        flag2 = 3
        while flag2:
            password = input('--------- 请输入您的密码:')
            if password != user[uname]:
                flag2 = flag2 - 1
                print('--------- 您输入的密码错误!您还剩下', flag1, '次输入机会')
                continue
            else:
                print('登陆成功,欢迎你'+ uname )
                print('------------------------')
                print(end='\n')
                choose0()
    elif choose == 2:
        flag3 = 1  # 退出注册
        flag4 = 0  # 判断是否有脏字,全局变量
        while flag3:
            uname = input('--------- 请输入您要注册的用户名:')
            duty = ['傻', '逼', '蠢', '吊', '笨']
            for i in duty:
                rename = uname.replace(i, '*')
                if rename != uname:
                    flag4 = 1
                    uname = rename
            if flag4 == 1:
                print("您注册的用户名", uname, "包含敏感词汇,请重新输入!注意不可包含'傻','逼','蠢','吊','笨'")
                flag4 = 0
                continue
            else:
                while flag3:
                    password = input('--------- 请输入您要注册的用户名的密码:')
                    if password.isalpha() or password.isdigit():
                        print("--------- 您的密码不能只包含数字或字母")
                        continue
                    elif len(password) < 6:
                        print('--------- 您的密码长度过低,最低为6位')
                        continue
                    else:
                        user[uname] = password
                        flag3 = 0
                        print('您已成功注册用户:'+uname)
                        print('------------------------')
                        print(end='\n')
                        choose0()

 选择二:管理员增删查改信息

管理员选项页面:

输入1-4 来选择你要操作的管理员选项

管理员选项页面效果: 

管理员选项函数:addminiter()

def addminiter():
    print('--------  用户信息维护页  --------')
    print('-------- 1.增加用户信息 ----------')
    print('-------- 2.删除用户信息 ----------')
    print('-------- 3.修改用户信息 ----------')
    print('-------- 4.显示用户信息 ----------')
    choose2=int(input('请输入您的管理员选项:'))
    if choose2==1:
        adduser()
    if choose2==2:
        deluser()
    if choose2==3:
        changeuser()
    if choose2==4:
        showuser()


管理员操作一: 增加用户信息

增加用户效果:

增加用户函数:adduser()

def adduser():
    newname = input('请输入新用户的账号:')
    newpwd = input('请输入新用户的密码:')
    print('您已成功添加用户:' + '账号为:'+ newname + ' ,密码为:' + newpwd)
    print('------------------------')
    print(end='\n')
    newuser={}
    newuser[newname]=newpwd
    user.update(newuser)
    choose0()

管理员操作二:删除用户信息 

删除用户效果:

 删除用户函数:deluser()

def deluser():
    delname=input('请输入要删除的用户的账号:')
    print('您确认删除账号为:' + delname + ' 的用户信息吗?')
    choose3=input('Y/N:')
    if choose3=='Y':
        if delname in user:
            del user[delname]
            print('您已删除用户:' + delname)
            print('------------------------')
            print(end='\n')
            choose0()
        else:
            print('您输入的账号不存在')
            print('------------------------')
            print(end='\n')
            choose0()
    elif choose3=='N':
        print('您未删除任何用户')
        print('------------------------')
        print(end='\n')
        choose0()

 管理员操作三:改变用户信息

       此操作由于用户数据中只有名字和密码,所以此处只能根据姓名改变该姓名对应的密码,如果需要别的信息自行添加即可

改变用户效果:

改变用户信息函数 :changeuser()

def changeuser():
    changename=input('请输入要修改的学生的账号:')
    if changename in user:
        print('您当前修改的用户账号为:' + changename)
        new_changepwd = input('请输入要修改的用户的密码:')
        user[changename]=new_changepwd
        print('您已成功修改用户',changename,'的个人信息')
        print('------------------------')
        print(end='\n')
        choose0()
    else:
        print('您输入的用户不存在')
        print('------------------------')
        print(end='\n')
        choose0()

管理员操作四:显示用户信息 

显示信息效果:

显示信息函数: showuser()

def showuser():
    showname=input('请输入您要查询的用户账号:')
    if showname in user:
        print('您要查询的该用户信息为:')
        print('账号为:'+showname+' ,密码为:'+user[showname])
        print('------------------------')
        print(end='\n')
        choose0()
    else:
        print('无此用户')
        print('------------------------')
        print(end='\n')
        choose0()

 完整代码:

user = {'孟煜桐': '123456m','彭敬':'123456p'}

class Menu(object):
    @staticmethod
    def StudentMenu():
        print('-------- 欢迎来到图书管理系统  --------')
        print('--------- 1 查看所有藏书')
        print('--------- 2 借阅图书')
        print('--------- 3 归还图书')
        print('--------- 4 查询图书')
        print('--------- 0 退出系统')
        while True:
            studentchoice = input('请选择您要进行的操作:')
            if studentchoice == '1':
                choice.StudentSee()
            elif studentchoice =='2':
                choice.StudentBorrow()
            elif studentchoice == '3':
                choice.StudentGive()
            elif studentchoice == '4':
                choice.ManagerFind();
            elif studentchoice =='0':
                print ('---------- 欢迎再次使用图书管理系统 ---------')
                print('')
                choose0()
                break
            else:
                print ('您输入的信息有误,请重新输入:')
                Menu.StudentMenu()

class Book(object):
    def __init__(self, name, author, count, place):
        self.name = name
        self.author = author
        self.count = count
        self.place = place

class choice(object):
    # 查询图书
    @staticmethod
    def ManagerFind():
        name = input('请输入要查询的书名:')
        for book in BookList:
            if name == book.name :
                print('《%s》 作者:%s  数量:%s  楼层:%s!' % (name,book.author,book.count,book.place))
                return True
        else:
            print ('书库里没有书籍《%s》!' % book.name)
            return None

    # 遍历图书馆中的所有书
    @staticmethod
    def StudentSee():
        print ('图书馆中所有的书有:')
        for book in BookList:
            print ('《%s》 作者:%s \t数量:%s \t楼层:%s '% (book.name,book.author,book.count,book.place))
        print('*'*30)
        Menu.StudentMenu()
    # 学生借书部分
    @staticmethod
    def StudentBorrow():
        name = input('请输入您想借阅的书名:')
        for book in BookList:
            if name == book.name :
                    if book.count == 0 or book.count < 0:
                        print('------ 该书已经被借空,请稍后再来!------')
                        print('')
                        Menu.StudentMenu()
                    else:
                        print('------ 您已成功借到书籍《%s》------' % (name))
                        print('')
                        book.count -= 1
                        Menu.StudentMenu()
        for book in BookList:
            if book.name not in BookList:
                print('------ 抱歉,图书馆暂时没有《%s》这本书' % name)
                print('')
                Menu.StudentMenu()
                break;

    # 学生还书部分
    @staticmethod
    def StudentGive():
        name = input('------ 请输入您要归还的书名:')
        for book in BookList:
            if name == book.name:
                book.count+=1
                print('------ 您已成功归还书籍《%s》' % name)
                print('')
                Menu.StudentMenu()
        if name not in BookList:
           print('------ 抱歉,图书馆暂时没有《%s》这本书,您无法归还' % name)
           print('')
           Menu.StudentMenu()

def choose0():
    print('-------- 图书馆借阅管理系统 --------')
    print('--------- 1.用户登录/注册  --------')
    print('--------- 2.管理员界面     -------')
    choose1 = int(input('请选择用户登录注册或是管理员登录:'))
    print(end='\n')
    if choose1 == 1:
        useroption()
    elif choose1==2:
        addminiter()
    else:
        print('您选择的信息有误')


def addminiter():
    print('--------  用户信息维护页  --------')
    print('-------- 1.增加用户信息 ----------')
    print('-------- 2.删除用户信息 ----------')
    print('-------- 3.修改用户信息 ----------')
    print('-------- 4.显示用户信息 ----------')
    choose2=int(input('请输入您的管理员选项:'))
    if choose2==1:
        adduser()
    if choose2==2:
        deluser()
    if choose2==3:
        changeuser()
    if choose2==4:
        showuser()

def adduser():
    newname = input('请输入新用户的账号:')
    newpwd = input('请输入新用户的密码:')
    print('您已成功添加用户:' + '账号为:'+ newname + ' ,密码为:' + newpwd)
    print('------------------------')
    print(end='\n')
    newuser={}
    newuser[newname]=newpwd
    user.update(newuser)
    choose0()

def deluser():
    delname=input('请输入要删除的用户的账号:')
    print('您确认删除账号为:' + delname + ' 的用户信息吗?')
    choose3=input('Y/N:')
    if choose3=='Y':
        if delname in user:
            del user[delname]
            print('您已删除用户:' + delname)
            print('------------------------')
            print(end='\n')
            choose0()
        else:
            print('您输入的账号不存在')
            print('------------------------')
            print(end='\n')
            choose0()
    elif choose3=='N':
        print('您未删除任何用户')
        print('------------------------')
        print(end='\n')
        choose0()

def changeuser():
    changename=input('请输入要修改的学生的账号:')
    if changename in user:
        print('您当前修改的用户账号为:' + changename)
        new_changepwd = input('请输入要修改的用户的密码:')
        user[changename]=new_changepwd
        print('您已成功修改用户',changename,'的个人信息')
        print('------------------------')
        print(end='\n')
        choose0()
    else:
        print('您输入的用户不存在')
        print('------------------------')
        print(end='\n')
        choose0()

def showuser():
    showname=input('请输入您要查询的用户账号:')
    if showname in user:
        print('您要查询的该用户信息为:')
        print('账号为:'+showname+' ,密码为:'+user[showname])
        print('------------------------')
        print(end='\n')
        choose0()
    else:
        print('无此用户')
        print('------------------------')
        print(end='\n')
        choose0()

def useroption():
    print('--------- 用户登录注册 ----------')
    print('--------- 1.登录用户 -----------')
    print('--------- 2.注册用户 -----------')
    choose = int(input('请输入您的选择:'))
    if choose == 1:
        flag1 = 3
        while flag1:
            uname = input("--------- 请输入您的用户名:")
            if uname not in user:
                 flag1 = flag1 - 1
                 print('--------- 您输入的用户名不存在!您还剩下', flag1, '次输入机会')
                 continue
            else:
                break;
        if flag1 <= 0:
                    print('-------- 您输入错误次数过多,稍后再试')
                    print('-------------------------------')
                    choose0()
        else:
         flag2 = 3
         while flag2:
             password = input('--------- 请输入您的密码:')
             if password != user[uname]:
                flag2 = flag2 - 1
                print('--------- 您输入的密码错误!您还剩下', flag2, '次输入机会')
                continue
             else:
                print('登陆成功,欢迎你'+ uname )
                print('------------------------')
                print(end='\n')
                Menu.StudentMenu();
    elif choose == 2:
        flag3 = 1  # 退出注册
        flag4 = 0  # 判断是否有脏字,全局变量
        while flag3:
            uname = input('--------- 请输入您要注册的用户名:')
            duty = ['傻', '逼', '蠢', '吊', '笨']
            for i in duty:
                rename = uname.replace(i, '*')
                if rename != uname:
                    flag4 = 1
                    uname = rename
            if flag4 == 1:
                print("您注册的用户名", uname, "包含敏感词汇,请重新输入!注意不可包含'傻','逼','蠢','吊','笨'")
                flag4 = 0
                continue
            else:
                while flag3:
                    password = input('--------- 请输入您要注册的用户名的密码:')
                    if password.isalpha() or password.isdigit():
                        print("--------- 您的密码不能只包含数字或字母")
                        continue
                    elif len(password) < 6:
                        print('--------- 您的密码长度过低,最低为6位')
                        continue
                    else:
                        user[uname] = password
                        flag3 = 0
                        print('您已成功注册用户:'+uname)
                        print('------------------------')
                        print(end='\n')
                        choose0()

BookList = []
book1 = BookList.append(Book('web前端开发','张三',10,'1Floor'))
book2 = BookList.append(Book('计算机操作系统','李四',10, '2Floor'))
book3 = BookList.append(Book('python程序设计','贾子琪',10,'3Floor'))
book4 = BookList.append(Book('软件工程','王五',10,'3Floor'))
book5 = BookList.append(Book('老人与海','海明威',10,'3Floor'))
choose0()


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 用户信息管理系统【各个函数剖析 + 完整代码 零基础适用篇】 的相关文章

随机推荐

  • linux 找u盘,linux系统怎样找到U盘?

    linux系统怎样找到U盘 精选 更新时间 2019 10 27 00 12 最满意答案 1 用FDISK l 来找 一般U盘会被LINUX认为SCSI设备 如果有SCSI设备那么U盘一般是最后一个SCSI设备 如果没有SCSI设备 一般s
  • 2.2Qt布局控件

    2 2Qt布局控件 文章目录 2 2Qt布局控件 一 为什么需要布局控件 二 基本布局控件 1 利用控件组进行布局 2 利用快捷方式进行布局 总结 提示 以下是本篇文章正文内容 下面案例可供参考 一 为什么需要布局控件 图形页面程序会直接影
  • 链表基础增删改查操作代码

    链表基础操作 增删改查 代码 package com mia linkedlist import javafx beans property SimpleListProperty import java text SimpleDateFor
  • NLP中embedding

    NLP中embedding https mp weixin qq com s 5ttCIFPVA0 7O67DvI6HKA https www zhihu com question 510987022 一 获取目标对象表征 如果有人问我 你
  • tp5.0 api 接口设计语言包切换功能

    tp5 0 lang 使用 header 传参 语言包没有调用 一 设置语言切换配置 参考文档 https www kancloud cn manual thinkphp5 118132 找到你config设置文件 进行设置 二 设置对应语
  • 网站防御cdn和高防服务器,高防IP和高防CDN哪个防护更好?

    现在网络攻击越来越多 而且有越来越凶猛的趋势 为了保障服务器的安全性和稳定性 不少企业和站长都选了高防服务器 虽然防御提升了 但是攻击依旧是无法避免的 如果使用了高防服务器之后 还不能很好的防御 又不想更换防御更高的高防服务器 不妨可以添加
  • 解决ARM-Compiler ‘Default Compiler Version 5‘ which is not available

    新版MDK不再自带ARM Compiler version 5编译器 如果编辑之前的工程会提示 ARM Compiler Default Compiler Version 5 which is not available 错误 需要手动安装
  • JAR包在CenOS启动成功却打不开项目

    开始看防火墙 service iptables status 提示 Redirecting to bin systemctl status iptables service Unit iptables service could not b
  • RJ45网口灯的含义及当前问题描述

    当前使用的网口是10M 100M的 上有两个灯 绿色和黄色灯 绿色灯状态表示的是网口的连接状态 如果绿色灯常亮表明的是网口处于正常连接状态 黄色灯闪烁代表数据传输 常见的异常 两个灯都不亮 网口未连接成功 两个灯都亮 且常亮 但是数据不通
  • docker入门,这一篇就够了。

    Docker入门 这一篇就够了 Docker容器虚拟化平台 前言 接触docker很长时间了 但是工作中也没有用到 所以总是学了忘 忘了学 不过这次 我打算跟大家分享一下我的学习历程 也算是我的独特的复习笔记 我会在这一篇中讲清楚docke
  • Unity播放视频(一) VideoPlayer的使用

    1 在UI上添加脚本 添加UITexture脚本 用于显示视频 添加VideoPlayer 2 上代码 VideoPlayer m Video UITexture m Texture void Start m Video started O
  • 利用html设置嵌套式表格,表格嵌套 HTML

    嵌套表格就是在一个大的表格中 再嵌进去一个或几个小的表格 即插入到表格单元格中的表格 如果用一个表格布局页面 并希望用另一个表格组织信息 则可以插入一个嵌套表格 表格的嵌套一方面是为使页面的外观更为漂亮 利用表格嵌套来编辑出复杂而精美的效果
  • 3个步骤就让一个web服务器建立起来(web服务器简单写法)

    第一步 新建一个js文件 文件名自行设置 不建议使用中文和数字 内容如下 1 引入http模块 const http require http 2 创建服务 const server http createServer function r
  • 使用百度地图api功能显示位置

  • ctfshow--web入门(web1-web20)

    web1 查看源代码 发现flag web2 查看源代码 通过在url头部添加 view source 或者f12 web3 flag在响应包里 web4 进入robots txt 发现后台遗留文件 web5 考点phps文件泄露 直接访问
  • TypeScript之类与抽象类

    前言 记录一下typeScript中的类 TS中的类与ECMAScript中的类还是有很大区别的 ES6开始引入了类的概念 通过class 关键字定义类 在constructor中定义实例属性等 比起 ES6中的类 在TS中 多了一些类型定
  • 图像噪声

    噪声在理论上可以定义为 不可预测 只能用概率统计方法来描述的随机误差0 因此 可以将图像噪声看成是多维随机过程 描述噪声完全可以借用随机过程及其概率密度函数 数字图像的噪声主要来源于图像的获取和传输过程 图像传感器的工作情况受各种因素影响
  • Vue教程(五):样式绑定——class和style

    1 样式代码准备 样式提前准备
  • org.hibernate.exception.GenericJDBCException: Cannot open connection

    导入一个基于Hibernate的项目后debug 结果出现这个问题 出现这个错误的原因及解决方法 1 数据库没启动 这时你可以简单检验一下 可以拿一个你肯定没问题的项目运行一下 看数据库里表的数据 我用的这个 也可以可以打开数据库客户端 如
  • python 用户信息管理系统【各个函数剖析 + 完整代码 零基础适用篇】

    这个用户管理系统小白也能轻松掌握 只用了函数 用户信息只有两个 姓名 账号 和密码 采用字典存放数据 字典的键即为姓名 值为密码 功能分为两大部分 第一部分为用户的登录和注册 第二部分为管理员对信息的增删查改操作 以下为文章目录 文章目录