文件存储格式如下:
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
进阶选做:
b.可创建新员工记录,id要顺序增加c.可删除指定员工记录,直接输入员工id即可
d.修改员工信息
语法:set 列名=“新的值” where 条件
#先用where查找对应人的信息,再使用set来修改列名对应的值为“新的值”
注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成
其他需求尽量用函数实现
作业要求:
1.今天的作业一起打包交上来
2.放在作业文件夹中
需要交整理的函数相关的思维导图
整理的函数知识点的博客链接
3.大作业放在文件夹中
文件夹中需要包括:
代码
流程图(请上交一张png图片。如果没有合适的画图软件,可以用processon画)
readme文件(请上交一个txt文件,对作业进行一些简单说明,包括作业的整体思路,如何运行,实现了哪些功能,遇到了哪些问题等。)
clumn_dic = {'id':0,'name':1,'age':2,'phone':3,'job':4} print(clumn_dic.keys()) def get_show_lst(col_condition): col_info_lst = col_condition.strip().split('select') col_info_lst=[col_info_iterm for col_info_iterm in col_info_lst if col_info_iterm] #['name.age'] if col_info_lst : col_info=col_info_lst[0] #'name,age' #print(col_info) if '*' in col_info : #print('123123') return ['id', 'name', 'age', 'phone', 'job'] elif col_info: #print('444444444') ret=col_info.strip().split(',') return [iterm.strip() for iterm in ret] else : print(col_info) def get_selected_lst(con): if '>' in con: selected_lst = filterhandle('>',con) if '<' in con: selected_lst = filterhandle('<',con) if '=' in con: selected_lst = filterhandle('==',con.replace('=','==')) if 'like' in con: selected_lst = filterhandle('in',con.replace('like','in')) return selected_lst def filterhandle(operate,con): col,val= con.split(operate) col=col.strip() #age val=val.strip() #22 selected_lst = [] with open ('111.py','r',encoding='utf8') as f: for line_lst in f: line_lst=line_lst.split(',') #[id,'name','age','phone','job'] judge = 'int(line_lst[clumn_dic[col]]) %s int(val)' %operate if operate == '<' or operate == '>'\ else 'val %s line_lst[clumn_dic[col]]' %operate if eval(judge): #print(line_lst) selected_lst.append(line_lst) return selected_lst def show (selected_lst,show_lst): for iterm in selected_lst: for a in iterm : a=a.strip() for i in show_lst : print(iterm[clumn_dic[i]],end=' ') condition = input(">>>: ") # select name,age where age > 22 ret= condition.strip().split('where') #print(ret) con = ret[1] # age > 22 show_lst=get_show_lst(ret[0]) #print(show_lst) selected_lst = get_selected_lst(con) #selected_lst=[iterm for iterm in selected_lst if iterm ] #print(selected_lst) show (selected_lst,show_lst)
文件存储格式如下:
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
进阶选做:
b.可创建新员工记录,id要顺序增加c.可删除指定员工记录,直接输入员工id即可
d.修改员工信息
语法:set 列名=“新的值” where 条件
#先用where查找对应人的信息,再使用set来修改列名对应的值为“新的值”
注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成
其他需求尽量用函数实现
作业要求:
1.今天的作业一起打包交上来
2.放在作业文件夹中
需要交整理的函数相关的思维导图
整理的函数知识点的博客链接
3.大作业放在文件夹中
文件夹中需要包括:
代码
流程图(请上交一张png图片。如果没有合适的画图软件,可以用processon画)
readme文件(请上交一个txt文件,对作业进行一些简单说明,包括作业的整体思路,如何运行,实现了哪些功能,遇到了哪些问题等。)
clumn_dic = {'id':0,'name':1,'age':2,'phone':3,'job':4} print(clumn_dic.keys()) def get_show_lst(col_condition): col_info_lst = col_condition.strip().split('select') col_info_lst=[col_info_iterm for col_info_iterm in col_info_lst if col_info_iterm] #['name.age'] if col_info_lst : col_info=col_info_lst[0] #'name,age' #print(col_info) if '*' in col_info : #print('123123') return ['id', 'name', 'age', 'phone', 'job'] elif col_info: #print('444444444') ret=col_info.strip().split(',') return [iterm.strip() for iterm in ret] else : print(col_info) def get_selected_lst(con): if '>' in con: selected_lst = filterhandle('>',con) if '<' in con: selected_lst = filterhandle('<',con) if '=' in con: selected_lst = filterhandle('==',con.replace('=','==')) if 'like' in con: selected_lst = filterhandle('in',con.replace('like','in')) return selected_lst def filterhandle(operate,con): col,val= con.split(operate) col=col.strip() #age val=val.strip() #22 selected_lst = [] with open ('111.py','r',encoding='utf8') as f: for line_lst in f: line_lst=line_lst.split(',') #[id,'name','age','phone','job'] judge = 'int(line_lst[clumn_dic[col]]) %s int(val)' %operate if operate == '<' or operate == '>'\ else 'val %s line_lst[clumn_dic[col]]' %operate if eval(judge): #print(line_lst) selected_lst.append(line_lst) return selected_lst def show (selected_lst,show_lst): for iterm in selected_lst: for a in iterm : a=a.strip() for i in show_lst : print(iterm[clumn_dic[i]],end=' ') condition = input(">>>: ") # select name,age where age > 22 ret= condition.strip().split('where') #print(ret) con = ret[1] # age > 22 show_lst=get_show_lst(ret[0]) #print(show_lst) selected_lst = get_selected_lst(con) #selected_lst=[iterm for iterm in selected_lst if iterm ] #print(selected_lst) show (selected_lst,show_lst)