python基础练习--《人力资源管理员工管理》

2023-11-19

python新手入门练习
运用python的基础数据结构编写《人力资源管理员工管理》
初学python,入门练习,留些记录,方便以后查看,如有错误,请诸位大神指点,谢谢
需求分析:

  1. 要求使用python的最基础的数据结构(字典、元组、列表、字符串等)作为数据存储
  2. 要求小程序可以实现基本的添加、删除、修改、查询等功能(一个程序最基本的增删改查)
  3. 要求小程序在实现的过程中,有防止误操作的机制
  4. 要求小程序的编号是自动增长,模拟数据库id的自增长,不重复
    代码实现:
    function_list = {
            1: ("入职", "您可以进入此功能内添加员工"),
            2: ("离职", "您可以进入此功能内删除员工"),
            3: ("修改", "您可以进入此功能内修改员工的信息"),
            4: ("查看", "您可以进入此功能查询所有的员工信息"),
            5: ("搜索", "您可以搜索指定的员工,查询他/她的信息"),
            6: ("退出", "退出系统")
        }
        person_dict = {10000: ["小强", "男", "汉武时期人士"]}
        while True:
            print("欢迎登陆人力资源管理系统>>>>")
            for key, value in function_list.items():
                print(f"{key}:{value}")
            chose = input("请输入您的选择编号>>>")
            if chose.isdigit():
                chose = int(chose)
                if 0 < chose <= 6:
                    if chose == 6:
                        print("系统退出~~~~")
                        print("欢迎下次光临~~~~")
                        exit()
                    elif chose == 5:
                        flag = True
                        while flag:
                            person_num = input("请输入您要查询的员工编号>>>")
                            if person_num.isdigit():
                                person_num = int(person_num)
                                print("正在查询中,请稍后~~~~~~")
                                print(f"您查询的员工编号为{person_num}的员工信息如下:")
                                pre = person_dict.get(person_num, "抱歉,您查询的员工信息不存在!")
                                print(pre)
                                if pre:
                                    chose = input(f"您可以选择重置员工{person_num}Y/N>>>")
                                    if chose.isalpha() and chose.upper() == "Y":
                                        person_dict[person_num] = None
                                        flag = False
                                        print("重置成功,请到修改页面重新更换")
                                    elif chose.isalpha() and chose.upper() == "N":
                                        print("跳转主页面中~~~~~~~~~~~~~~~~~")
                                        flag = False
                                    else:
                                        print("输入错误,请重新输入,谢谢合作")
                                else:
                                    flag = False
                    elif chose == 4:
                        flag = True
                        while flag:
                            for key, value in person_dict.items():
                                print(f"员工编号:{key}\n员工信息:{value}")
                            chose = input(f"是否回到主页面Y/N>>>")
                            if chose.isalpha() and chose.upper() == "Y":
                                flag = False
                            else:
                                continue
                    elif chose == 3:
                        flag = True
                        while flag:
                            for key, value in person_dict.items():
                                print(f"员工编号:{key}\n员工信息:{value}")
                            person_num = input(f"请输入您要修改员工信息的编号or输入exit,返回上一级>>>")
                            if person_num.isdigit():
                                person_num = int(person_num)
                                per = person_dict.get(person_num, "您输入的员工不存在!")
                                if per:
                                    while True:
                                        chose = input("请选择您要修改员工的什么信息?(姓名1、性别2、年龄3)or 回到上级页面/4>>>")
                                        if chose.isdigit():
                                            chose = int(chose)
                                            if chose == 1:
                                                aa = input("请输入您要改为什么鬼?")
                                                person_dict[person_num][0] = aa
                                            elif chose == 2:
                                                aa = input("请输入您要改为什么鬼?")
                                                person_dict[person_num][1] = aa
                                            elif chose == 3:
                                                aa = input("请输入您要改为什么鬼?")
                                                person_dict[person_num][2] = aa
                                            else:
                                                break
                                        else:
                                            print("输入错误,请重新输入!or 回到上级页面/4")
                                else:
                                    flag = False
                                    print(per)
                            elif person_num.isalpha() and person_num.upper() == "EXIT":
                                flag = False
                            else:
                                print("输入错误,请重新输入~~~")
                    elif chose == 2:
                        flag = True
                        while flag:
                            for key, value in person_dict.items():
                                print(f"员工编号:{key}\n员工信息:{value}")
                            person_num = input(f"请输入您要删除员工信息的编号or输入exit,返回上一级>>>")
                            if person_num.isdigit():
                                person_num = int(person_num)
                                per = person_dict.get(person_num, "您输入的员工不存在!")
                                if per:
                                    person_num = person_dict.pop(person_num)
                                    print(f"您已经成功删除员工信息为:{person_num}的员工")
                                else:
                                    print(per)
                                    print("请重新输入")
                            elif person_num.isalpha() and person_num.upper() == "EXIT":
                                flag = False
                            else:
                                print("输入错误,请重新输入~~~")
                    else:
                        flag = True
                        while flag:
                            lis1 = ["姓名", "性别", "出生年代"]
                            lis = []
                            for i in range(len(lis1)):
                                num = input(f"请输入您要添加的员工{lis1[i]}")
                                lis.append(num)
                            person_dict[max(person_dict.keys()) + 1] = lis
                            print(f"添加成功,您已经成功添加员工{max(person_dict.keys())}")
                            chose = input("是否继续添加?Y/N")
                            if chose.isalpha() and chose.upper() == "N":
                                flag = False
                            elif chose.isalpha() and chose.upper() == "Y":
                                continue
                            else:
                                print("输入错误,你还是继续添加吧~~~~")
                else:
                    print("您的输入有误,请输入(1-6)选项")
            else:
                print("您的输入有误,请重新输入")
    

备注:

  1. 首先,分析需求
  2. 一个主页面
  3. 根据选择进入不同的环节,每个环节都需要循环进行
  4. 编号自动生成,就不允许添加编号,直接获取最大值
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python基础练习--《人力资源管理员工管理》 的相关文章

  • 判断线程是否已经启动

    如何判断Python线程是否已经启动 有一个方法is alive 但这是真的before and while一个线程正在运行 你可以看看ident领域的Thread实例 这Python 2 7 线程文档 http docs python o
  • 多重处理:如何从子进程重定向标准输出?

    注意 我见过multiprocessing Process 的日志输出 https stackoverflow com questions 1501651 log output of multiprocessing process 不幸的是
  • 在 python 的 Visual Studio 工具中按下 ctrl+F5 后,控制台窗口立即关闭

    我已经安装了 Visual Studio 的 Python 工具 但在控制台窗口中看不到输出 就像我在 Visual Studio 中运行 C 控制台应用程序时按以下快捷键时看到的输出一样 F5 开始调试程序并关闭 C 和 Python 中
  • OpenCV 错误:使用 COLOR_BGR2GRAY 函数时断言失败

    我在使用 opencv 时遇到了一个奇怪的问题 我在 jupyter 笔记本中工作时没有任何问题 但在尝试运行此 Sublime 时却出现问题 错误是 OpenCV错误 cvtColor中断言失败 深度 CV 8U 深度 CV 16U 深度
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • DataFrame 中的字符串,但 dtype 是对象

    为什么 Pandas 告诉我我有对象 尽管所选列中的每个项目都是一个字符串 即使在显式转换之后也是如此 这是我的数据框
  • 对打开文件的脚本进行单元测试

    我编写了一个脚本 它打开一个文件 读取内容并进行一些操作和计算 并将它们存储在集合和字典中 我该如何为这样的事情编写单元测试 我的问题具体是 我会测试文件是否打开 文件很大 这是unix字典文件 我如何对计算进行单元测试 我真的必须手动计算
  • 将 Django 表单中的所有 CharField 表单字段输入转换为小写

    我使用 Django 表单进行用户注册 用户可以在其中输入优惠券代码 我希望在优惠券代码字段中输入的所有字符都转换为小写 我尝试过在保存方法 自定义清理方法和自定义验证器中使用 lower 但这些方法没有运气 下面是我的代码 class S
  • multiprocessing.freeze_support()

    为什么多处理模块需要调用特定的function http docs python org dev library multiprocessing html multiprocessing freeze support在被 冻结 以生成 Wi
  • pandas 两个数据框交叉连接[重复]

    这个问题在这里已经有答案了 我找不到有关交叉联接的任何内容 包括合并 联接或其他一些内容 我需要使用 my function 作为 myfunc 处理两个数据帧 相当于 for itemA in df1 iterrows for itemB
  • 一起使用 Argparse 和 Json

    我是 Python 初学者 我想知道 Argparse 和 JSON 是否可以一起使用 说 我有变量p q r 我可以将它们添加到 argparse 中 parser add argument p param1 help x variabl
  • 使用 Python 解析 XML,解析外部 ENTITY 引用

    在我的 S1000D xml 中 它指定了一个带有对公共 URL 的引用的 DOCTYPE 该 URL 包含对包含所有有效字符实体的许多其他文件的引用 我使用 xml etree ElementTree 和 lxml 尝试解析它并得到解析错
  • 使用reduce方法的斐波那契数列

    于是 我看到有人用reduce方法来计算斐波那契数列 这是他的想法 1 0 1 1 2 1 3 2 5 3 对应于 1 1 2 3 5 8 13 21 代码如下所示 def fib reduce n initial 1 0 dummy ra
  • 在 Python 中,如何获取特定文件中定义的类列表?

    如果一个文件myfile py包含 class A object Some implementation class B object Some implementation 我如何定义一个方法 以便在给定的情况下myfile py 它返回
  • 将参数传递给 __enter__

    刚刚学习 with 语句尤其是这篇文章 http effbot org zone python with statement htm 问题是 我可以传递一个参数给 enter 我有这样的代码 class clippy runner def
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • Python:如何从文件中的一行读取字符并将它们转换为浮点数和字符串,具体取决于它们是数字还是字母?

    我有一个如下所示的文件 1 1 C C 1 9873 2 347 3 88776 1 2 C Si 4 887 9 009 1 21 我想逐行读取文件的内容 当我使用的行上只有数字时 for line in readlines file d
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • DRF:以编程方式从 TextChoices 字段获取默认选择

    我们的网站是 Vue 前端 DRF 后端 在一个serializer validate 方法 我需要以编程方式确定哪个选项TextChoices类已被指定为模型字段的默认值 TextChoices 类 缩写示例 class PaymentM
  • 将数组从 .npy 文件读入 Fortran 90

    我使用 Python 以二维数组 例如 X 的形式生成一些初始数据 然后使用 Fortran 对它们进行一些计算 最初 当数组大小约为 10 000 x 10 000 时 np savetxt 在速度方面表现良好 但是一旦我开始增加数组的维

随机推荐

  • 第一篇博--初入CSDN

    选择开博并计划按月定期发布一些敲码路上的收获和心得 目的是在梳理知识 复盘总结的同时 能够和志同道合的朋友们一起学习 共同进步 在互联网上留下一份自己的痕迹 与诸君共勉 联系方式 631435743 qq com 欢迎大家找我讨论计算机专业
  • 六、IDEA编写HelloWorld并运行

    IDEA IDEA 全称 IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 JavaEE支持 各类版本工具 git svn等 JUni
  • hook中使用ref使用

    对于antd的fom表单 hook使用ref import React useState useEffect useRef from react const dateRef useRef dateRef current setFieldsV
  • 【Umi+Antd+Ts实战】新增商品弹框组件【V1.0】

    新增商品弹框组件 先看效果 1 点击 符号 弹出新增商品组件 路由配置可以参考下面博客 https blog csdn net weixin 43352901 article details 108536112 2 新增商品弹框内容 文件目
  • MySQL数据库20G数据迁移至其他服务器的MySQL库或者云MySQL库

    背景 20G的MySQL数据迁移至火山云MySQL库 使用navicat的数据传输工具迁移速度耗费时间过长 方案一 使用火山云提供的MySQL数据迁移服务 其他大厂应该提供的也有 方案二 使用数据迁移工具kettle 也可使用其他数据迁移工
  • Windows命令行实用技巧:详解del命令参数

    这个命令是用于Windows命令行 CMD 或者PowerShell的 它是使用 del 命令来删除文件 s f 和 q 是该命令的参数 s 参数 这个参数表示递归 即命令会删除指定目录及其子目录中的指定文件 f 参数 这个参数表示强制 即
  • mybatisPlus如何进行联接

    我想左连接某表 plus有没有提供api 类型leftJoin方法 是的 MyBatis Plus 提供了 API 来支持左连接查询 可以使用 leftJoin 方法进行左连接操作 以下是一个示例代码 import com baomidou
  • 调试osgEarth(33)分页瓦片卸载器子节点的作用-(3)渲染遍历的帧号和时间设置-_terrain使用TerrainCuller

    继续调试 这个是一堆NULL 省事了 然而 真的有这么简单么 想想地球加载起来时 视点变化时
  • 关于命令或语法中的方括号,尖括号等符号的区别

    关于方括号和尖括号的区别 命令说明或者语法说明中包含一些方括号 lt gt 等符号 方括号 表示可选参数 尖括号 表示必填参数 1 基本符号命令 内的内容意思是 可写可不写 那就必须要在 内给出的选择里选一个 lt gt 表示必选 注 不能
  • PKI体系及密码算法

    HTTPS 的诞生 可先参考网络协议 HTTPS协议等文章 明文传输 对称加密 加密 和 解密 使用 相同的 密钥 如果密钥可以安全的传输 那么消息也应该可以安全的传输 非对称加密 上述非对称加密与对称加密效果基本一样 如果公钥可以安全的传
  • squid使用NCSA验证

    如果要在squid中加入用户名和密码的验证 使用NCSA是最方便的 生成用户名 密码文件 用命令 htpasswd 来生成 使用非常简单 生成一个叫passwdfile的密码文件 包含username和password账户 htpasswd
  • 【电子电路】RS485收发器两种典型电路

    1 基本RS 485 电路 图1为一个经常被应用到的SP485R芯片的示范电路 可以被直接嵌入实际的RS 485应用电路中 微处理器的标准串行口通过RXD 直接连接SP485R 芯片的 RO 引脚 通过TXD直接连接SP485R 芯片的 D
  • Markdown基础语法介绍

    何为Markdown Markdown是一种轻量级标记语言 它允许用户以纯文本格式编写文档 然后转换成有效的XHTML或HTML文档 Markdown具备轻量化 跨平台 易读易写等特性 且支持文本 图片 图表等多种展示样式 Markdown
  • 使用Mac的十大最好用神器

    资深 Mac 用户 提升效率的 10 大神器 谢志鹏 大家好 我是曹将的徒弟 Pem 最近刚结束悉尼大学研究生的学习 是一枚正在求职的交互设计师 我是从 2015 年开始使用 Mac 的 如果用一句话来形容 Mac 的使用感受 那就是 令人
  • 下载Freescale CodeWarrior 11.0解决Freescale CodeWarrior 代码限制(不需要license)

    一些NXP的项目需要软件Freescale CodeWarrior的最新版本10 7 但是新安装了软件之后 10 7版本的license只能使用一个月 一个月到期后 就会有代码大小的限制 这个时候 需要花钱购买license 费用几千块钱
  • android.accessibilityservice包介绍

    android accessibilityservice 英文原文 http developer android com reference android accessibilityservice package summary html
  • Ant Design Pro 修改主题设置

    Ant Design Pro 修改主题设置 主题是在项目根目录下的config defaultSettings js文件下内所定义的其中导出的Settings对象中即为默认的主题等配置 如下图 const Settings navTheme
  • Vue2项目使用高德地图

    目录 一 账号准备 1 注册账号 2 获取key 二 快速上手 1 安装 2 创建地图 3 点标记 4 海量点标记 5 简易行政区图 6 GeoJSON 三 绑定事件 总结 一 账号准备 1 注册账号 首先 注册开发者账号 成为高德开放平台
  • 高德地图加渐变色3D线段

    想用高德地图实现渐变色的边界效果 查看了很多资料 测试了很多方法 终于实现啦 记录一下 1 按照高德官方示例创建地图 var map new AMap Map container pitch 75 地图俯仰角度 有效范围 0 度 83 度
  • python基础练习--《人力资源管理员工管理》

    python新手入门练习 运用python的基础数据结构编写 人力资源管理员工管理 初学python 入门练习 留些记录 方便以后查看 如有错误 请诸位大神指点 谢谢 需求分析 要求使用python的最基础的数据结构 字典 元组 列表 字符