python基础案例练习一

2023-11-09

"""
员工管理系统练习
1.显示系统菜单
2.获得用户输入的菜单
3.根据用户的输入判断执行操作
"""

# 存储员工信息
employee = {}

def show_menu():
    print('*'*20 + '员工管理系统菜单' + '*'*20)
    print('1.添加员工信息')
    print('2.删除员工信息')
    print('3.修改员工信息')
    print('4.查看员工信息')
    print('5.退出')

# 添加员工信息
def add_employee():

    # 1.获得手动输入的员工信息
    employee_id = input('请输入员工编号:')
    # 2.判断员工编号是否存在,若存在提示编号重复,若不重复则继续操作
    all_employee_id = list(employee.keys())
    if employee_id in all_employee_id:
        print('员工编号重复,无法添加')
        return
    # 3.若员工编号不重复则进行下面的操作
    employee_name = input('请添加员工姓名:')
    employee_age = input('请添加员工年龄')
    employee_salary = input('请输入员工工资')
    # 3..保存员工信息到字典employee中,编号为key,其他信息为value
    employee_info = {'name':employee_name,'age':employee_age,'salary':employee_salary}
    employee[employee_id] = employee_info #保存员工信息到字典employee中
    print('员工编号为' + employee_id + '的信息添加成功')

# 删除员工信息
def remove_employee():
    # 1.获得要删除的员工编号
    employee_id = input('请输入要删除的员工编号:')
    # 2.如果员工编号不存在,提示员工不存在,结束函数执行
    all_employee_id = list(employee.keys())
    if employee_id not in all_employee_id:
        print('员工编号不存在,无法添加')
        return
    # 3.如果员工编号存在,执行删除操作,使用del关键字删除员工信息
    del employee[employee_id]
    print('员工编号为' + employee_id + '的信息删除成功')

# 显示员工信息
def show_employee():
    # 遍历员工信息
    for per_employee in employee.items():
        print(per_employee[0],per_employee[1]['name'],per_employee[1]['age'],per_employee[1]['salary'])

# 修改员工信息
def edit_employee():
    # 1.获得要修改员工的编号
    employee_id = input('请输入要修改的员工编号:')

    all_employee_id = list(employee.keys())
    # 2.判断编号是否存在
    if employee_id not in all_employee_id:
    # 3.如果不存在提示输入错误
        print('员工编号不存在,无法修改')
        return
    # 4.如果存在,显示源信息,执行修改操作
    new_employee_name = input('您的姓名是:'+employee[employee_id]['name']+'您要修改为:')
    new_employee_age = input('您的年龄是:'+employee[employee_id]['age']+'您要修改为:')
    new_employee_salary = input('您的工资是:' + employee[employee_id]['salary'] + '您要修改为:')
    # 若输入为空则不更新
    if new_employee_name != '':
        employee[employee_id]['name'] = new_employee_name
    if new_employee_age != '':
        employee[employee_id]['age'] = new_employee_age
    if new_employee_salary != '':
        employee[employee_id]['salary'] = new_employee_salary
    print('员工编号为'+ employee_id + '的员工信息修改成功')

while True:
    # 显示系统菜单
    show_menu()
    # 获得用户输入的信息
    my_operate = input('请输入您的操作:')
    # 根据用户输入判断执行操作
    if my_operate == '1':
        add_employee()
        print(employee)
    elif my_operate == '2':
        remove_employee()
        print(employee)
    elif my_operate == '3':
        edit_employee()
    elif my_operate == '4':
        show_employee()
    elif my_operate == '5':
        print('退出系统')
        break
    else:
        print('您的输入有误')

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

python基础案例练习一 的相关文章

随机推荐

  • redis详解之数据备份与恢复

    一 数据备份 Redis所有数据都是保存在内存中 Redis数据备份可以定期的通过异步方式保存到磁盘上 该方式称为半持久化模式 如果每一次数据变化都写入aof文件里面 则称为全持久化模式 本章节通过配置文件 触发快照的方式 恢复数据的操作
  • word论文:参考文献字间距太大的处理方法

    全选参考文献 右键选择 段落 选择中文版式 设置如下图所示 换行 全选 字符间隔 只选择自动调整中文与数字的间距 然后就完成了参考文献间距变动问题 重点 允许西文换行
  • 【十九】微分动态规划

    微分动态规划 Differential Dynamic Programming DDP 注意上一讲中推导出的公式 我们发现如果只需更新 则不必维护 的更新 即在一定程度上 是不需要的 所以我们在下面的讨论中不考虑 的影响 使用上一讲中将非线
  • 科技云报道:大小巨头涌入赛道,隐私计算迎来商业落地元年

    科技云报道原创 近两年来 隐私计算逐渐从小众领域为大众熟知 2021年 隐私计算开始在真实商业场景中全面落地 据毕马威发布的 2021隐私计算行业研究报告 显示 受到大数据融合应用和隐私保护的双重需求驱动 国内隐私计算市场将快速发展 三年后
  • 什么是 vue-cli?怎样创建vue-cli项目?

    1 什么是 vue cli vue cli 俗称 vue 脚手架 是 vue 官方提供的 快速生成 vue 工程化项目的工具 特点 开箱即用 基于 webpack 功能丰富且易于扩展 支持创建 vue2 和 vue3 的项目 vue cli
  • JAVA使用servlet接收json格式的方法

    JAVA中使用HttpServletRequest接收前台传入的参数 其中json的格式是 penalty 0 5 deductPointsItem 7 photoUrl image 26quality 80 26size b9999 10
  • 链表的实现:无头单向非循环链表的实现

    笔者在上篇博客书写了一个名为 链式存储之 链表的引出及其简介原文链接为 https blog csdn net weixin 64308540 article details 128374876 spm 1001 2014 3001 550
  • 【Blender】摄像机-01常用操作

    新建相机如何快速将视角设为相机视角 A 新建相机后 ctrl alt 0 即把当前视角作为摄像机视角 例如正视图 先按1 然后ctrl alt 0 摄像机常用操作 1 shift a新建摄像机 调整合适焦距 当然也可以不调整 2 点击0键
  • 5. springBoot-web开发——模板引擎

    1 thymeleaf Thymelaef 是通过他特定语法对 html 的标记做渲染的一个视图层技术 1 1 引入thymeleaf 1 引入thymeleaf的依赖
  • .net 中context、DbContext是什么?

    可以将上下文看作相关 事物 的包装 例如 HttpContext DbContext ObjectContext HttpContext包含任何HTTP相关操作的信息 DbContext包含用于数据库通信的方法和属性 ObjectConte
  • 对数字添加前导0达到固定长度

    近期在处理一个时间展示 要求月日时分秒固定展示2位数字 毫秒固定展示3位数字 传统的作为是根据小于10 小于100等在前面添加特定个数的0 昨晚突然想到 字符串的slice方法可以指定一个负数值来取字符串的后面n个字符 这样在原始数字前面添
  • Win10下AutoCAD2014 +VS2010 + Object2014 安装与配置环境

    Win10下AutoCAD2014 VS2010 Object2014 安装与配置环境 安装前的准备 1 AutoCAD2014安装包 https pan baidu com s 1nK zeBv7tIcipOKcVroo3g 提取码 p7
  • IDEA自动设置作者信息

    一 背景和痛点 以前用Eclipse 忘记设置类的作者信息 是可以使用 之后回车自动出现作者信息的 现在用IDEA不能通过这种方式补全 非常不方便 注意 网上很多教程 说的是新建java类的时候出现作者信息 跟提到的问题痛点是不同的 作者信
  • 实验1:顺序表的基本操作(包括基本代码)

    实验1 顺序表的基本操作 实验目的 1 掌握顺序表的存储结构 2 实现顺序表的基本操作 实验内容 建立一个顺序表L1 11 2 35 41 65 2 1 查找元素5是否存在 2 删除位序为3的元素 3 输出所有元素 4 输出顺序表的长度 5
  • [专利与论文-10]:跟小朋友聊专利

  • C语言经典100例(5)——输入三个整数x,y,z,请把这三个数由小到大输出。

    题目分析 很简单 依次比较三个数的大小进行排序 最后输出即可 代码实现 include
  • VL6180X传感器驱动

    vl6180x i2c c I2C通信 获取VL6180x地址 可以知道7位地址为0x29 写 0x52 读 0x53 写入数据 通过I2C总线向某一寄存器写入一个字节数据 成功 0 失败 1 uint8 VL6180X WriteByte
  • 配置静态路由小实验

    实验拓扑 实验要求 1 使用 eNSP 搭建如下拓扑图 2 基本配置 接口 IP 地址 设备主机名等 3 配置静态路由 使 PC1 PC2 和 PC3 可以互通 4 配置浮动静态路由 使 PC3 通过 AR3 的 G0 0 1 接口访问其他
  • surfaceDestroyed什么时候被调用

    今天看别人的代码 突然有个疑问 surfaceDestroyed这个函数什么时候被调用呢 上网搜了一番 基本都说是surface被销毁的时候 才会调用surfaceDestroyed 问题又来了surface什么时候被销毁呢 大家都知道su
  • python基础案例练习一

    员工管理系统练习 1 显示系统菜单 2 获得用户输入的菜单 3 根据用户的输入判断执行操作 存储员工信息 employee def show menu print 20 员工管理系统菜单 20 print 1 添加员工信息 print 2