吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7278|回复: 45
收起左侧

[Python 转载] 花了2天时间学习使用pandas操作excel,初步构造一个员工管理系统

  [复制链接]
gxq229 发表于 2020-2-13 23:27
老人家刚学习。。。大神勿喷,希望可以指出不足。
主要功能:运行代码显示系统功能界面
1. 添加学员 2. 删除学员 3. 修改学员信息
4. 查询学员信息 5. 显示所有学员信息 6. 退出系统
共写了3个版本
1、控制台版本:构架各个模块,并完善功能细节。
2、保存txt文件版本:大脑不够用,只能将数据以[{}]列表嵌套字典的完整格式保存,每次都是读取文件到变量,再操作添加、修改等操作,最后再保存到txt文件,非常不好
3、已xlsx格式保存excel文件,总算能看的过去了

代码我经过反复查看,思考,暂时未想出更精简的方法。
希望各位大神指出不足和指教一些经验。
代码是第三个版本的,前面2个就不发了
[Python] 纯文本查看 复制代码
import pandas as pd
文件位置 = 'Python员工档案.xlsx'
列标题 = ['姓名', '年龄', '性别', '部门', '岗位', '职称']
class 入口():
    def 读取数据(self):
        try:
            读取 = pd.read_excel(io=文件位置)
            读取.index=读取.index+1
            return 读取
        except:
            数据 = pd.DataFrame(columns=列标题)
            数据.to_excel(文件位置, index=0)
            print('您好,欢迎您使用Python员工管理系统\n'
                  '首次使用,系统自动创建员工管理文件\n'
                  '文件创建中……\n'
                  '文件创建成功')
            读取 = pd.read_excel(io=文件位置)
            return 读取

    def 添加员工(self):
        员工信息 = [{'姓名': 姓名, '年龄': 年龄,
                 '性别': 性别, '部门': 部门,
                 '岗位': 岗位, '职称': 职称}]
        读取 = 入口().读取数据()
        遍历姓名 = (读取.reindex(columns=['姓名']))
        for i in 遍历姓名['姓名'].values:
            if str(i) == 姓名:
                print('该员工已存在')
                return
        读取 = 读取.append(员工信息)
        读取.to_excel(文件位置, index=False)
        print('"{}"的员工信息已经添加完成'.format(姓名))
        print('---------------------')
        return

    def 删除员工(self):
        读取 = 入口().读取数据()
        字典=读取.to_dict()
        for k in range(1,len(字典['姓名'])+1):
            if 字典['姓名'][k] == 删除员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(字典['姓名'][k],
                                       字典['年龄'][k],
                                       字典['性别'][k],
                                       字典['部门'][k],
                                       字典['岗位'][k],
                                       字典['职称'][k]))
                print('---------------------')
                读取.drop([k],inplace=True)
                读取.to_excel(文件位置, index=False)
                print('成功删除员工"{}"'.format(删除员工))
                print('---------------------')
                return
        print('您删除的员工不存在')
        print('---------------------')
    def 修改员工(self):
        读取 = 入口().读取数据()
        字典=读取.to_dict()
        for k in range(1,len(字典['姓名'])+1):
            if 字典['姓名'][k] == 修改员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(字典['姓名'][k],
                                       字典['年龄'][k],
                                       字典['性别'][k],
                                       字典['部门'][k],
                                       字典['岗位'][k],
                                       字典['职称'][k]))
                print('---------------------')
                修改 = input('请输入您要修改的信息编号(\n'
                           '1.姓名,2.年龄,3.性别\n'
                           '4.部门,5.岗位,6.职称\n'
                           '输入任意键退出):')
                if 修改 == '1':
                    新数据变量 = input('请输入新的姓名:')
                    修改变量 = '姓名'
                elif 修改 == '2':
                    新数据变量 = input('请输入新的年龄:')
                    修改变量 = '年龄'
                elif 修改 == '3':
                    新数据变量 = input('请输入新的性别:')
                    修改变量 = '性别'
                elif 修改 == '4':
                    新数据变量 = input('请输入新的部门:')
                    修改变量 = '部门'
                elif 修改 == '5':
                    新数据变量 = input('请输入新的岗位:')
                    修改变量 = '岗位'
                elif 修改 == '6':
                    新数据变量 = input('请输入新的职称:')
                    修改变量 = '职称'
                else:
                    print('您已退出修改员工信息功能!')
                    print('---------------------')
                    return
                print('---------------------')
                读取.loc[k, 修改变量] = 新数据变量
                读取.to_excel(文件位置, index=False)
                print('修改成功:该员工"{}"'
                      '已修改为"{}"'.format(修改变量, 新数据变量))
                print('---------------------')
                return
        print('您修改的员工不存在')
        print('---------------------')

    def 查询员工(self):
        读取 = 入口().读取数据()
        遍历姓名 = (读取.reindex(columns=['姓名',
                                    '年龄',
                                    '性别',
                                    '部门',
                                    '岗位',
                                    '职称'
                                    ]))
        for i in 遍历姓名.values:
            if i[0] == 查询员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(i[0],i[1],i[2],i[3],i[4],i[5]))
                print('---------------------')
                return
        print('您查询的员工不存在')
        print('---------------------')

    def 所有员工(self):
        读取 = 入口().读取数据()
        print('共有"{}"名员工'.format(len(读取)))
        print(读取)
        print('-----------------------------------')

    def 退出系统(self):
        print('您已成功退出Python员工管理系统!')
        print('----------Bye bye----------')
        exit()

if __name__ == '__main__':
    while True:
        读取=入口().读取数据()
        print('--- 欢迎使用Python员工管理系统 ---')
        print('1、添加员工信息    2、删除员工信息')
        print('3、修改员工信息    4、查询员工信息')
        print('5、所有员工信息    6、退出管理系统')
        print('------------- end -------------')
        序号 = input('请输入您要操作的功能序号:')
        print('-----------------------------------')
        if 序号 == '1':
            姓名 = str(input('请输入员工姓名:'))
            年龄 = int(input('请输入员工年龄:'))
            性别 = str(input('请输入员工性别:'))
            部门 = str(input('请输入员工部门:'))
            岗位 = str(input('请输入员工岗位:'))
            职称 = str(input('请输入员工职称:'))
            入口().添加员工()
        elif 序号 == '2':
            if len(读取) == 0:
                print('暂时没有员工,请添加员工信息!\n')
            else:
                删除员工 = input('请输入要删除的员工名称:')
                print('---------------------')
                入口().删除员工()
        elif 序号 == '3':
            if len(读取) == 0:
                print('暂时没有员工,请添加员工信息!\n')
            else:
                修改员工 = input('请输入您要修改的员工名称:')
                print('---------------------')
                入口().修改员工()
        elif 序号 == '4':
            if len(读取) == 0:
                print('暂时没有员工,请添加员工信息!\n')
            else:
                查询员工 = input('请输入要查询的员工名称:')
                print('---------------------')
                入口().查询员工()
        elif 序号 == '5':
            if len(读取) == 0:
                print('暂时没有员工,请添加员工信息!\n')
            else:
                入口().所有员工()
        elif 序号 == '6':
            入口().退出系统()
        else:
            print('请输入正确的序号\n')

免费评分

参与人数 6吾爱币 +8 热心值 +4 收起 理由
林信辽 + 1 谢谢@Thanks!
gx8451d + 1 + 1 谢谢@Thanks!
vegaswhy + 1 + 1 我很赞同!
Futuresing + 1 用心讨论,共获提升!
bydlyzx + 1 + 1 太难的我也看不懂,就喜欢这样的。
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| gxq229 发表于 2020-2-14 15:51
Arlin 发表于 2020-2-14 01:24
牛啊,都是中文,不怕出错啊?

怎么说呢,用英文肯定好点,至少英文有大小写区别,中文没有,我现在主要是学习阶段,用中文更能加深记忆,另外,中文的代码发出来,让有兴趣学习的人也能看的更明白一点,我是真心知道,代码看不懂的痛苦,以前经常看到大神发的代码,虽然有注释,但是很多地方还是不好理解,用中文的话,看的更清楚,更容易理解。你觉得呢?
后期学习进度慢慢加深,在以后的写代码的时候肯定会尽量用英文或者拼英去写。
asdxieling 发表于 2020-2-14 00:03
没事武士 发表于 2020-2-14 01:00
Arlin 发表于 2020-2-14 01:24
牛啊,都是中文,不怕出错啊?
carcer 发表于 2020-2-14 01:56
老人家多大了,不知道是否熬夜学习呢?看了下逻辑 还是听清楚的
hearicp 发表于 2020-2-14 08:37
使用pandas操作excel,构造一个员工管理系统
yangzvanli 发表于 2020-2-14 09:00
厉害,继续努力!
FanGX7365 发表于 2020-2-14 09:20
复制你的代码,运行出错:
运行失败
Traceback (most recent call last):
  File "1472.python37", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

楼主能发下源码不?
boyanuir 发表于 2020-2-14 09:52
FanGX7365 发表于 2020-2-14 09:20
复制你的代码,运行出错:
运行失败
Traceback (most recent call last):

你怕是 连pandas都没安装吧, pip install pandas
z506820187 发表于 2020-2-14 11:17
写的挺不错的,加油
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 04:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表