gxq229 发表于 2020-2-13 23:27

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

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

代码我经过反复查看,思考,暂时未想出更精简的方法。
希望各位大神指出不足和指教一些经验。
代码是第三个版本的,前面2个就不发了
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 字典['姓名'] == 删除员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(字典['姓名'],
                                       字典['年龄'],
                                       字典['性别'],
                                       字典['部门'],
                                       字典['岗位'],
                                       字典['职称']))
                print('---------------------')
                读取.drop(,inplace=True)
                读取.to_excel(文件位置, index=False)
                print('成功删除员工"{}"'.format(删除员工))
                print('---------------------')
                return
      print('您删除的员工不存在')
      print('---------------------')
    def 修改员工(self):
      读取 = 入口().读取数据()
      字典=读取.to_dict()
      for k in range(1,len(字典['姓名'])+1):
            if 字典['姓名'] == 修改员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(字典['姓名'],
                                       字典['年龄'],
                                       字典['性别'],
                                       字典['部门'],
                                       字典['岗位'],
                                       字典['职称']))
                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 = 新数据变量
                读取.to_excel(文件位置, index=False)
                print('修改成功:该员工"{}"'
                      '已修改为"{}"'.format(修改变量, 新数据变量))
                print('---------------------')
                return
      print('您修改的员工不存在')
      print('---------------------')

    def 查询员工(self):
      读取 = 入口().读取数据()
      遍历姓名 = (读取.reindex(columns=['姓名',
                                    '年龄',
                                    '性别',
                                    '部门',
                                    '岗位',
                                    '职称'
                                    ]))
      for i in 遍历姓名.values:
            if i == 查询员工:
                print('已为您找到该员工信息')
                print('姓名:{}\n'
                      '年龄:{}\n'
                      '性别:{}\n'
                      '部门:{}\n'
                      '岗位:{}\n'
                      '职称:{}\n'.format(i,i,i,i,i,i))
                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')

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

写的挺不错的,加油
页: [1] 2 3 4 5
查看完整版本: 花了2天时间学习使用pandas操作excel,初步构造一个员工管理系统