python学生管理系统现实意义
员工管理系统,顾名思义,应该具有增删查改功能。拿到需求后,应该按照一定的流程依次编写,最后达到程序的统一和兼容。
系统需求如下:
文件存储格式如下:
id,name,age,phone,job
1,Alex,22,13651054608,IT
2,Egon,23,13304320533,Tearcher
3,nezha,25,1333235322,IT
现在需要对这个员工信息文件进行增删改查。
基础必做:
a.可以进行查询,支持三种语法:
select 列名1,列名2,… where 列名条件
支持:大于小于等于,还要支持模糊查。
示例:
select name,age where age>22 #> <
select * where job=IT # =
select * where phone like 133 #看起来像 ‘abc’in ‘1232abcahj’
#充分的利用函数
#文件处理 字符串处理
#str #where split
进阶选做:
b.可创建新员工记录,id要顺序增加
c.可删除指定员工记录,直接输入员工id即可
d.修改员工信息
语法:set 列名=“新的值” where 条件
#先用where查对应人的信息,再使用set来修改列名对应的值为“新的值”
注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成
其他需求尽量用函数实现
-----------------------------------------------------------------------------------------------------------------------
这样我们拿到了需求,首先应该按照需求来设计流程,然后按照流程再编写程序。首先应该想到的就是查询功能的实现。
代码如下:
def cha():
f = open('员工信息',encoding='utf-8') #打开文件,编码格式utf-8,文件名员工信息,存储格式按需求
def chaxun(a):
xinxi,tiaojian=a.split('where') #将获取到的内容进行分割,分割标志是'where',分割原因就是由where分别可以分割出条件和信息
xinxi = xinxi.strip().strip('select') #将信息去空格去掉select 这样可以得到查询的信息了
if '*'in xinxi and 'job'in tiaojian: #如果得到的信息中含有*而且条件中含有job
j,d=tiaojian.strip().split('=') #那么条件按等号分割,将条件d分割出来
d = d.strip()
for line in f: #循环每一行内容
i = line.strip().split(',') #内容去空格,按照逗号分割
#print(line)
writelines在python中的用法job = i[4] #job在第五位
if job==d: #拿出第五位数据对比,如果相等
print(line) #打印这行数据,就是查询的,因为前面的循环循环打印所有符合条件的数据
else:
continue
elif '*'in xinxi and 'phone'in tiaojian: #如果*在信息中,然后phone 在条件中
j, d = tiaojian.strip().split('like') #按照like将条件分割
d = d.strip()
for line in f:
i = line.strip().split(',')
# print(line)
phone = i[3] #phone在数据第四位
if d in phone: #如果分割出的条件在phone数据中
print(line) #打印这条数据
else:
continue
else:
for line in f: #如果不在两个条件中,进入第三个语法
i = line.strip().split(',')
age = i[2] #age数据在第三位