各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统

因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python比java要简单的多,而且学起来特快,业务

逻辑没那么复杂,理解起来更好理解,接下里就慢慢给大家讲讲思路:

(尤其是初学者,不要只顾着敲, 要多想想业务逻辑,思路才是最重要的 )

先放几张图,给大家看看运行效果,再慢慢跟大家层层剖析

看到这些图片,是不是觉得挺简单的,确实,只要掌握了基础,自然这些是有把握的敲出来的

此次这个员工管理系统大致的功能就是 增删改查 ,就是我们俗称的 curd ,只是这些都是假数据,并没有连接数据库Mysql的那种

第一部分:

1.1菜单栏的展示

这个菜单栏99%的同学都可以敲得出来,就好比1+1=2那样简单,但是这里有个小注意的地方,为了代码的美观性和避免冗长,一般

都是封装在一个函数里,把它独立成块,你可以就放在同一个文件里,也可以另外新建一个python文件,导入并调用即可

=

我就是建立了两个文件夹,把他单独写在另外一个文件夹中,但是一定要记得导入import

1.2如何循环并且选择操作

第一行的while True 时起着循环的作用

while True:employee_tools.show_menu()action_str = input("请输入您的操作:")if action_str == "1":# 1.添加员工信息employee_tools.add_info()elif action_str == "2":# 2.修改员工信息employee_tools.update_info()elif action_str == "3":# 3.删除员工信息employee_tools.delete_info()elif action_str == "4":# 4.显示所有员工信息employee_tools.show_all_info()elif action_str == "5":# 5.退出系统print("欢迎您再次使用员工管理系统!!!")breakelse:# 输入其他任意数字print("您输入的有误,请重新输入:")

第二部分:增删查改的功能实现( 尽量别看代码,多看思路,逻辑思维才是最重要的!!! )

1.添加员工 实现的步骤:

1.输入员工的工号、姓名、性别、工资等等1.1判断员工编号是否存在,如果存在则拒绝添加,提示“编号已存在,不能重复添加”1.2如果不重复,则继续接下来的操作
2.把这些信息保存在一个字典里(键值对)2.1员工工号作为键,剩下的属性(姓名、性别、工资)作为值,这才是最重要的,因为id是唯一的,后面的修改、删除都是以id为突破口,这点一定要重视2.2类似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx}
3.提示添加成功
def add_info():"""添加员工信息"""print("添加员工===>")employ_id = input("请输入要添加员工的工号:")# 先找到所有的字典的键,再将这些键转化为列表的形式all_id = list(employee_dict.keys())if employ_id in all_id:print("员工工号已存在,不能重复添加!!!")returnemploy_name = input("请输入要添加员工的姓名:")employ_sex = input("请输入要添加员工的性别:")employ_salary = input("请输入要添加员工的工资:")# 把这些信息保存在一个字典里info_dict = {"name": employ_name, "sex": employ_sex, "salary": employ_salary}# 再放在大字典里,怎么放,根据id号相对应employee_dict[employ_id] = info_dictprint("工号为 %s 的员工信息添加成功!!!" % employ_id)# 这里只是起到打印观察的作用,可注释掉下面这一行# 说明仅仅还是放在字典里面,毕竟输出是字典形式,怎么显示那是第四个功能该做的事# print(employee_dict)   # {'1001': {'name': '张三', 'sex': '男', 'salary': '5000'}}

2.修改员工实现的步骤:

 1.拿到要修改员工的工号1.1如果工号不存在,则提示错误信息,终止函数执行,返回1.2如果存在,则修改对应的信息1.2.1 显示原来的信息再修改2.因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?2.1判断修改时输入的是不是惟恐,为空就保持不变,不为空则说明修改了
def update_info():"""修改员工信息"""print("修改员工===>")employ_id = input("请输入你要修改的员工的工号")all_id = list(employee_dict.keys())if employ_id not in all_id:print("该员工工号不存在,不能进行修改!!!")returnnew_name = input("姓名是:%s   修改后的姓名:" % employee_dict[employ_id]['name'])new_sex = input("性别是:%s   修改后的性别:" % employee_dict[employ_id]['sex'])new_salary = input("工资是:%s   修改后的工资:" % employee_dict[employ_id]['salary'])# 因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?if new_name != "":employee_dict[employ_id]['name'] = new_nameif new_sex != "":employee_dict[employ_id]['sex'] = new_sexif new_salary != "":employee_dict[employ_id]['salary'] = new_salaryprint("工号为 %s 的员工信息修改成功!!!" % employ_id)

3.删除员工

# 实现步骤:1.输入要删除员工的工号
#           2.判断工号是否存在,不存在就给出提示信息,终止函数执行
#           3.如果存在,则直接删除
def delete_info():"""删除员工信息"""print("删除员工===>")employ_id = input("请输入你要删除的员工的工号")all_id = list(employee_dict.keys())if employ_id not in all_id:print("该员工工号不存在,不能进行删除!!!")returnelse:# 直接删除这个字典del employee_dict[employ_id]print("工号为 %s 的员工信息删除成功!!!" % employ_id)

4.显示所有员工信息

# 实现步骤:1.判断员工是否存在,如果不存在则提示返回
#              1.1怎么判断?当列表长度为0时,则说明不存在
#          2.如果存在,就打印表头
#          3.打印分割线
#          4.遍历员工信息,依次输出字典信息
def show_all_info():"""显示员工信息"""print("显示所有员工信息===>")# 判断员工是否存在if len(list(employee_dict.keys())) == 0:print("当前没有任何的员工信息,请先选择操作 1,添加员工!!!")# return 下方的代码不会被执行return# 打印表头print("-" * 40)for people in ["工号", "姓名", "性别", "工资"]:print(people, end="\t\t")# 打印分割线# 增加换行print("")print("-" * 40)# 遍历员工信息,依次输出字典信息# 这个items方法是把字典转换成列表的方法,须特别注意for jober in employee_dict.items():print("%s\t\t%s\t\t%s\t\t\t%s" % (jober[0],jober[1]['name'],jober[1]['sex'],jober[1]['salary']))print("-" * 40)

以上就是增删改查四个部分的功能实现,思路都写的非常详细,希望初学者们能重视思路的重要性

反思几个问题:

①为什么哪里都有这段?

employ_id = input("请输入你要(删除、修改、添加)的员工的工号")
all_id = list(employee_dict.keys())
if employ_id not in all_id:print("该员工工号不存在,不能进行(修改、删除、添加)!!!")return

前面我就提到过,id此时是唯一能提供识别的

还有,为什么哪段都写呢,因为每一个函数都是独立的,定义在函数内部的,你在另外一个函数不能直接拿来用,涉及到局部变量和全局变量的知识

② 在专门定义函数的最上面,不要忘记这行代码,这是大字典 ,在写第一个功能前,就必须用到,放在外面第一行,其他功能的实现也会用到

提示:在这个tools文件中,第一行需要加一行代码:
# 存储所有的员工信息,空数据时employee_dict = {}

③有的同学会问,我可以在一个python文件中,实现这些所有功能吗?

当然可以,因为咱们这只有四个主要功能,数量基数小,放在一个文件中写是绝对可以的,那作为技术一般的小编我为什么又要分开写呢?

因为,企业的开发肯定要实现的功能多,放在不同的文件中利于项目后期的版本修改和维护,添加或者修改某个功能都会方便很多,这么说吧,

在后期维护中,代码能不动的尽量别动,如果你把所有的东西都放在一个文件中,那改起来如果不小心,牵一发而动全身,后悔莫及

④有没有什么值得推荐的自学python的网站呢?

接下来,小编我就把自己觉得质量还可以的教学视频链接发在这里:自己用心慢慢看哦(其实B站资源很丰富的)

https://www.bilibili.com/video/av14184325/?spm_id_from=333.788.videocard.1

如果你觉得看视频太长,太耗费时间,可以去菜鸟教程上面看文档,(有的地方有点绕,建议最好还是看视频)

https://www.runoob.com/python3/python3-tutorial.html

最后的最后, 我把这个简易版的员工管理系统代码全搬出来,小伙伴们有需要的可以直接复制,你只需要建立两个文件就行

1.employee_main.py文件

import employee_tools
while True:employee_tools.show_menu()action_str = input("请输入您的操作:")if action_str == "1":# 1.添加员工信息employee_tools.add_info()elif action_str == "2":# 2.修改员工信息employee_tools.update_info()elif action_str == "3":# 3.删除员工信息employee_tools.delete_info()elif action_str == "4":# 4.显示所有员工信息employee_tools.show_all_info()elif action_str == "5":# 5.退出系统print("欢迎您再次使用员工管理系统!!!")breakelse:# 输入其他任意数字print("您输入的有误,请重新输入:")

2.employee_tools.py文件

# 存储所有的员工信息,空数据时
# employee_dict = {}# 这是原本就有固定数据时的字典
employee_dict = {'1001': {'name': '张三', 'sex': '男', 'salary': '5000'},'1002': {'name': '李四', 'sex': '男', 'salary': '7000'},'1003': {'name': '小红', 'sex': '女', 'salary': '9000'},}def show_menu():"""进入菜单页面"""print("*" * 11+"员工管理系统 V_1.0"+"*" * 11)# print("员工管理系统 V1.0")print("1、添加员工信息")print("2、修改员工信息")print("3、删除员工信息")print("4、显示所有员工信息")print("5、退出系统")print("*" * 40)def add_info():"""添加员工信息"""# 实现步骤:1.输入员工的工号、姓名、性别、工资等等#             1.1判断员工编号是否存在,如果存在则拒绝添加,提示“编号已存在,不能重复添加”#             1.2如果不重复,则继续接下来的操作#           2.把这些信息保存在一个字典里#             2.1员工工号作为键,剩下的属性(姓名、性别、工资)作为值#             2.2类似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx}#           3.提示添加成功print("添加员工===>")employ_id = input("请输入要添加员工的工号:")# 先找到所有的字典的键,再将这些键转化为列表的形式all_id = list(employee_dict.keys())if employ_id in all_id:print("员工工号已存在,不能重复添加!!!")returnemploy_name = input("请输入要添加员工的姓名:")employ_sex = input("请输入要添加员工的性别:")employ_salary = input("请输入要添加员工的工资:")# 把这些信息保存在一个字典里info_dict = {"name": employ_name, "sex": employ_sex, "salary": employ_salary}# 再放在大字典里,怎么放,根据id号相对应employee_dict[employ_id] = info_dictprint("工号为 %s 的员工信息添加成功!!!" % employ_id)# 这里只是起到打印观察的作用,可注释掉下面这一行# 说明仅仅还是放在字典里面,毕竟输出是字典形式,怎么显示那是第四个功能该做的事# print(employee_dict)   # {'1001': {'name': '张三', 'sex': '男', 'salary': '5000'}}def update_info():"""修改员工信息"""print("修改员工===>")# 实现步骤 1.拿到要修改员工的工号#          1.1如果工号不存在,则提示错误信息,终止函数执行,返回#          1.2如果存在,则修改对应的信息#               1.2.1 显示原来的信息再修改#          2.因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?#             2.1判断修改时输入的是不是惟恐,为空就保持不变,不为空则说明修改了employ_id = input("请输入你要修改的员工的工号")all_id = list(employee_dict.keys())if employ_id not in all_id:print("该员工工号不存在,不能进行修改!!!")returnnew_name = input("姓名是:%s   修改后的姓名:" % employee_dict[employ_id]['name'])new_sex = input("性别是:%s   修改后的性别:" % employee_dict[employ_id]['sex'])new_salary = input("工资是:%s   修改后的工资:" % employee_dict[employ_id]['salary'])# 因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?if new_name != "":employee_dict[employ_id]['name'] = new_nameif new_sex != "":employee_dict[employ_id]['sex'] = new_sexif new_salary != "":employee_dict[employ_id]['salary'] = new_salaryprint("工号为 %s 的员工信息修改成功!!!" % employ_id)def delete_info():"""删除员工信息"""print("删除员工===>")# 实现步骤:1.输入要删除员工的工号#           2.判断工号是否存在,不存在就给出提示信息,终止函数执行#           3.如果存在,则直接删除employ_id = input("请输入你要删除的员工的工号")all_id = list(employee_dict.keys())if employ_id not in all_id:print("该员工工号不存在,不能进行删除!!!")returnelse:# 直接删除这个字典del employee_dict[employ_id]print("工号为 %s 的员工信息删除成功!!!" % employ_id)def show_all_info():"""显示员工信息"""print("显示所有员工信息===>")# 实现步骤:1.判断员工是否存在,如果不存在则提示返回#                   1.1怎么判断?当列表长度为0时,则说明不存在#           2.如果存在,就打印表头#           3.打印分割线#           4.遍历员工信息,依次输出字典信息# 判断员工是否存在if len(list(employee_dict.keys())) == 0:print("当前没有任何的员工信息,请先选择操作 1,添加员工!!!")# return 下方的代码不会被执行return# 打印表头print("-" * 40)for people in ["工号", "姓名", "性别", "工资"]:print(people, end="\t\t")# 打印分割线# 增加换行print("")print("-" * 40)# 遍历员工信息,依次输出字典信息# 这个items方法是把字典转换成列表的方法,须特别注意for jober in employee_dict.items():print("%s\t\t%s\t\t%s\t\t\t%s" % (jober[0],jober[1]['name'],jober[1]['sex'],jober[1]['salary']))print("-" * 40)

欢迎各位大佬评论和交流,咱们一起学习,一起进步

更多案例源码加群:850591259

成为管理层必会的技能之一!利用Python打造一款员工管理系统~相关推荐

  1. 利用Python对接MySQL实现员工管理系统

    博主这个摩的师傅,前两天在国道飙摩托的时候灵光一闪突然想到 我上学期期末考试的时候用Python写了个员工管理系统(别的班考这个,我以为我们班也考这个,结果不是,就放着没管了) 唉,那我能不能把员工系 ...

  2. 利用Python打造一个语音合成系统

    利用Python打造一个语音合成系统 背景 一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等. 语音合成系统 其实就是一个基于语音合成的工具,但是 ...

  3. 小哥哥你有98K吗?利用Python制作一款多功能变声器!

    前言 好吧,关于这句小哥哥你有98K吗?出自别人口中经常说的玩笑话,我也略懂一些游戏嘛.不过不常玩,废话不多说,开始咱们今天的教程,非常简单! 利用Python制作一款多功能变声器! 咱们首先登陆百度 ...

  4. python日常实用技能:利用python将图片转换成excel文档格式

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详 ...

  5. 利用Python打造短链接服务

    有时候我们需要推广的链接太长不利于我们去推广,这时候我们就需要用到短链接服务. 目前国内有很多家网站提供网站缩短服务,比如腾讯家的http://t.im.微博家的http://t.cn.百度家的htt ...

  6. 利用Vue.js实现简单员工管理系统(增删查)的功能

    员工管理系统 注意!!此篇博客没有涉及后台数据库,所有数据自己设定,不经过数据库来增删改查!! 我们想要实现一个简单的员工管理系统案例需要以下几个步骤,我们一起来康康叭~~ 第一步:首先先实现基础的表 ...

  7. 利用 Python 打造一个语音合成系统

    作者 | thedaydreamer 来源丨CSDN博客 背景 一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等. 语音合成系统 其实就是一个基于 ...

  8. 利用Python打造一个语音合成系统,听说你想要御姐音?

    背景 一直对语音合成系统比较感兴趣,总想能给自己合成一点内容,比如说合成小说,把我下载的电子书播报给我听等等. 语音合成系统 其实就是一个基于语音合成的工具,但是这个东西由于很多厂家都提供了API的形 ...

  9. 如何在python中制作超级玛丽_教你利用Python写一款超级玛丽,零基础也能学会,超级装逼...

    PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃.为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还 ...

  10. python代码翻译器-利用Python制作一款简单的翻译软件

    导语 之前写了两篇: Python之百度翻译小爬虫Python之有道翻译小爬虫 随手再加个Google翻译,然后把它们整合到一个Demo上,制作了一款简单的翻译软件.让我们愉快地开始吧~ 开发工具 P ...

最新文章

  1. 什么样的程序员才算成熟? 让程序员认清自己的所处的阶段
  2. 一维数组的求平均成绩 Day06
  3. BUUCTF firmware
  4. 顺序循环队列队满队空的两种判别方式
  5. JS中的基本和引用类型传递的比较
  6. 在命令行上启用 64 位 Visual C++ 工具集
  7. let和const注意点
  8. 尝试在Community Server中添加一个页面
  9. java两个和三个_H2DB和Java,大约两个小时的差异
  10. 谈FTP服务器***技术及其展望 (下)
  11. hdu 1004(排序+统计)
  12. 信号与系统 拉普拉斯变换
  13. 高等数学学习指导_学习A-Level应该如何选课?
  14. 深拖式多道高分辨率地震探测系统
  15. STM32 无法使用IAR下载程序问题
  16. JavaScript逻辑训练题(一)
  17. SLAM 岗位求职与简历书写
  18. 实现数字电视机顶盒画面的纯键盘和遥控操作网页
  19. 2000-2020全要素生产率OP法+LP法+OLS和固定效应法三种方法合集含原始数据和计算过程Stata代码
  20. Ubuntu18.04通过apt安装libssl1.1因依赖问题导致失败的解决办法

热门文章

  1. 2020年下半年信息安全工程师下午真题及答案解析
  2. 收集的省市区下拉数据源
  3. Ubuntu安装mindoc
  4. 启动 COMSOL 时发生意外错误:无法加载文件或程序集 ‘cstextrenderer_wpf‘
  5. 委外订单--采购入库单不能记账
  6. 开源dns软件PowerDNS BIND9 mydns
  7. Java线程状态RUNNABLE详解
  8. 2021年上半年软件设计师上午真题及答案解析
  9. matlab中灰色模型代码,灰色模型matlab代码
  10. drozer安全测试