视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用Python创建员工信息表的实例代码
2020-11-27 14:21:00 责编:小采
文档


本篇文章给大家带来的内容是关于使用Python创建员工信息表的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这是一道综合练习题,要求如下:
创建员工信息表,格式为:

#字段1,字段2,字段3,字段4,字段5
#1,*** ,*** , *******,***
#2,***, ***, *******,***
#3,*** ,*** , *****, ***

要求可以根据条件语句进行查询,格式为 select where 命令之间用空格隔开

def emp(): 
 lis_res = [[],[],[],[],[]] #定义最终存储数据的列表
 with open('yuangong','r',encoding='utf-8') as f:
 cha = input('请输入查询语句,格式为:select *** where *** > ***').strip()
 lis = cha.split(' ')#定义存放输入语句的列表
 n = [] #n表示符合查询变量的字符串所在列表位置
 if lis[0] == 'select' and lis[2] == 'where':#设定关键字条件
 lis1 = lis[1].split(',')#定义查询元素的列表
 lis_title = f.readline().split(',') #文件中第一行为字段名
 lis_title = [s.strip() for s in lis_title]#列表推导式,去掉每个元素两边的空格
 for v in lis1:#循环遍历要查询的字段是否在文件中
 if v in lis_title:
 n.append(lis_title.index(v))
 if '*' in lis[1]:n=[0,1,2,3,4]#定义使用*模糊查询
 if n == []: #如果字段不存在则退出程序
 print('查询的字段不存在')
 return
 if lis[4] == '>':#检查条件语句是否是大于号
 if lis[3] in lis_title: #字段是否包含条件语句
 m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
 else:
 print('字段不含有该条件')
 return
 for v in f:
 lis_f = v.split(',')#把取出来的每条数据都转化成列表
 lis_f = [s.strip() for s in lis_f] #列表推导式,去掉每个元素两边的空格
 if lis_f[m].isdigit() and lis[5].isdigit():#检查条件是否都为数字
 if int(lis_f[m]) > int(lis[5]):
 for i in n:#如果条件成立则把结果追加到lis_res中
 lis_res[i].append(lis_f[i])
 else:print('无法进行比较')
 elif lis[4] == '<':#检查条件语句是否是大于号
 if lis[3] in lis_title: #字段是否包含条件语句
 m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
 else:
 print('字段不含有该条件')
 return
 for v in f:
 lis_f = v.split(',')#把取出来的每条数据都转化成列表
 lis_f = [s.strip() for s in lis_f] #列表推导式,去掉每个元素两边的空格
 if lis_f[m].isdigit() and lis[5].isdigit():#检查条件是否都为数字
 if int(lis_f[m]) < int(lis[5]):
 for i in n:#如果条件成立则把结果追加到lis_res中
 lis_res[i].append(lis_f[i])
 else:print('无法进行比较')
 elif lis[4] == '=':#检查条件语句是否是大于号

 if lis[3] in lis_title: #字段是否包含条件语句
 m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
 else:
 print('字段不含有该条件')
 return
 for v in f:
 lis_f = v.split(',')#把取出来的每条数据都转化成列表
 lis_f = [s.strip() for s in lis_f] #列表推导式,去掉每个元素两边的空格
 if lis_f[m] == lis[5]:
 for i in n:#如果条件成立则把结果追加到lis_res中
 lis_res[i].append(lis_f[i])
 elif lis[4] == 'like':#定义like模糊搜索
 if lis[3]in lis_title:
 m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
 else:
 print('字段不含有该条件')
 return
 for v in f:
 lis_f = v.split(',')#把取出来的每条数据都转化成列表
 lis_f = [s.strip() for s in lis_f] #列表推导式,去掉每个元素两边的空格
 if lis[5] in lis_f[m]:
 for i in n:
 lis_res[i].append(lis_f[i]) 
 else:print('请以空格将各个名字隔开') 
 else:print('请输入正确的指令')
 if n!= []:#防止乱输指令后报错
 for i in range(len(lis_res[n[0]])):#
输出结果 for k in n: print(lis_res[k][i],end=' ') print(' ',end='') emp()
请输入查询语句,格式为:select *** where *** > ***select * where phone like 188
1 tom 25 18888888888 it

下载本文
显示全文
专题