老人家刚学习。。。大神勿喷,希望可以指出不足。
主要功能:运行代码显示系统功能界面
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')
|