各位小伙伴们大家好,最近自学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.添加员工信息
employee_tools.add_info()
elif action_str == "":
# 2.修改员工信息
employee_tools.update_info()
elif action_str == "":
# 3.删除员工信息
employee_tools.delete_info()
elif action_str == "":
# 4.显示所有员工信息
employee_tools.show_all_info()
elif action_str == "":
# 5.退出系统
print("欢迎您再次使用员工管理系统!!!")
break
else:
# 输入其他任意数字
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("员工工号已存在,不能重复添加!!!")
return
employ_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_dict
print("工号为 %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("该员工工号不存在,不能进行修改!!!")
return
new_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_name
if new_sex != "":
employee_dict[employ_id]['sex'] = new_sex
if new_salary != "":
employee_dict[employ_id]['salary'] = new_salary
print("工号为 %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("该员工工号不存在,不能进行删除!!!")
return
else:
# 直接删除这个字典
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.添加员工信息
employee_tools.add_info()
elif action_str == "":
# 2.修改员工信息
employee_tools.update_info()
elif action_str == "":
# 3.删除员工信息
employee_tools.delete_info()
elif action_str == "":
# 4.显示所有员工信息
employee_tools.show_all_info()
elif action_str == "":
# 5.退出系统
print("欢迎您再次使用员工管理系统!!!")
break
else:
# 输入其他任意数字
print("您输入的有误,请重新输入:")

2.employee_tools.py文件

# 存储所有的员工信息,空数据时
# employee_dict = {} # 这是原本就有固定数据时的字典
employee_dict = {'': {'name': '张三', 'sex': '男', 'salary': ''},
'': {'name': '李四', 'sex': '男', 'salary': ''},
'': {'name': '小红', 'sex': '女', 'salary': ''},
} 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("员工工号已存在,不能重复添加!!!")
return
employ_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_dict
print("工号为 %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("该员工工号不存在,不能进行修改!!!")
return
new_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_name
if new_sex != "":
employee_dict[employ_id]['sex'] = new_sex
if new_salary != "":
employee_dict[employ_id]['salary'] = new_salary
print("工号为 %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("该员工工号不存在,不能进行删除!!!")
return
else:
# 直接删除这个字典
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)

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

python员工管理系统(基础版)的更多相关文章

  1. 【python】文件下载---基础版

    基于TCP协议的基础版本,不支持大文件 Client.py import socket def main(): # 1. 创建套接字 tcp_socket = socket.socket(socket ...

  2. 01 基础版web框架

    01 基础版web框架 服务器server端python程序(基础版): import socket server=socket.socket() server.bind(("127.0.0 ...

  3. 零基础学python》(第二版)

    ---恢复内容开始--- 零基础学python>(第二版) python学习手册 可以离线下载,  .chn格式, 插入小幽默笑话,在学习累的时候看看笑话 放松一下 欢迎下载转载,请注明出处,谢 ...

  4. 《Python编程第4版 下》高清PDF|百度网盘免费下载|Python基础编程

    <Python编程第4版 下>高清PDF|百度网盘免费下载|Python基础编程 提取码:tz5v 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为这 ...

  5. 《Python编程第4版 上》高清PDF|百度网盘免费下载|Python基础编程

    <Python编程第4版 上>高清PDF|百度网盘免费下载|Python基础编程 提取码:8qbi  当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为 ...

  6. python tkinter实现俄罗斯方块 基础版

    本项目最终效果见本人b站投稿av81480858 简介部分 本项目最终代码已上传github: https://github.com/BigShuang/Tetris 的1_BASIC文件夹 .其中1 ...

  7. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

  8. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  9. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

随机推荐

  1. python 前端技术

    生活中浏览器就是一个客户端,根据搜索内容向不同的服务器发送请求,但是显示最终页面后与请求的服务器断开,想再次看到搜索内容时需要重新连接. 服务端: import socket def handle_r ...

  2. 【Android TimeCat】 解决cannot resolve symbol R

    莫名其妙出现了,鬼知道怎么来的. 解决方法总结 1. 推荐 解决90%的情况: Build->Clean ProjectBuild->Rebuild Project 2. 不常见 Andr ...

  3. 自己动手用java写一个hashMap

    入坑java很多年了,现在总结一下自己学到的东西. 1.首先我们先来聊聊什么是HashMap? 什么是hash?hash用中文的说法就叫做“散列”,通俗的讲就是把任意长度的字符串输入,经过hash计算 ...

  4. p标签内不能嵌套块级标签

    今天突然发现一个问题,那就是p标签内不能嵌套块级标签 例如: <p><p></p></p> 会被浏览器解析成 我又把 div 嵌套在里面,发现还是这样 ...

  5. PHPRAP v1.0.6 发布,修复因php7.1版本遗弃mcrypt扩展造成安装失败的BUG

    PHPRAP,是一个PHP轻量级开源API接口文档管理系统,致力于减少前后端沟通成本,提高团队协作开发效率,打造PHP版的RAP. 更新记录 [修复]修复因php7.1版本遗弃mcrypt扩展造成安装 ...

  6. SPA中前端路由基本原理与实现方式

    SPA 前端路由原理与实现方式 通常 SPA 中前端路由有2中实现方式,本文会简单快速总结这两种方法及其实现: 修改 url 中 Hash 利用 H5 中的 history Hash 我们都知道 ur ...

  7. jspdf + html2canvas 实现html转pdf (提高分辨率版本)

    刚解决了html中某div块生成pdf的问题,热乎乎的,赶紧记录下 引入的js传送门: https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jsp ...

  8. nor flash之4字节地址模式

    背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes ...

  9. Java 抽象类 抽象方法 使用说明

    知识点 什么是抽象类 抽象类与普通类主要两点不同: 1.在类的修饰符后面多了一个abstract关键字 2.抽象类是不允许通过new来实例化的 由于抽象类不能通过new来实例化,所以基本上是在继承中当 ...

  10. 移动webApp必备技能一、WebApp 里Meta标签大全,webappmeta标签大全

    1.先说说mate标签里的viewport: viewport即可视区域,对于桌面浏览器而言,viewport指的就是除去所有工具栏.状态栏.滚动条等等之后用于看网页的区域.对于传统WEB页面来说,9 ...