本篇文章给大家带来的内容是关于使用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 1881 tom 25 18888888888 it
登录后复制
以上就是使用Python创建员工信息表的实例代码的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2260688.html