def func(): msg=input(">>>").split(' ') #将输入内容按照空格分割 msg_name=msg[1].split(',') # condition=msg[-1] # print(condition,type(condition)) condition = msg[msg.index('where') + 1:] if len(condition)==1: condition = condition[0] dic={} with open('info',mode='r',encoding='utf-8') as file: for line in file: line=line.split(',') dic['id'],dic['name'],dic['age'],dic['phone'],dic['job']=line[0],line[1],line[2],line[3],line[4].strip() for i in msg_name: if i in condition: condition=condition.replace(i,dic[i]) try: if eval(condition): for j in msg_name: print(str(dic[j])+' ',end='') print(' ') condition = msg[-1] except: condition_list=condition.split('=') if condition_list[1] == dic[condition_list[0]]: for j in msg_name: print(str(dic[j])+' ',end='') if msg_name==['*']: if '=' in condition: condition_list=condition.split('=') if condition_list[1]==dic[condition_list[0]]: print(str(dic['id'])+' ',str(dic['name'])+' ',str(dic['phone'])+' ',str(dic['job'])) elif '>' in condition: condition_list = condition.split('>') if condition_list[1] < dic[condition_list[0]]: print(str(dic['id']) + ' ', str(dic['name']) + ' ', str(dic['phone']) + ' ', str(dic['job'])) elif '<' in condition: condition_list = condition.split('<') if condition_list[1] > dic[condition_list[0]]: print(str(dic['id']) + ' ', str(dic['name']) + ' ', str(dic['phone']) + ' ', str(dic['job'])) else: if condition[2] in str(dic[condition[0]]): print(str(dic['id']) + ' ', str(dic['name']) + ' ', str(dic['phone']) + ' ', str(dic['job'])) func()
我真的写了好久啊,写着写着发现可以有更简单的方法,前面实现的太复杂了,,就是分割的时候可以按照select 和 where 关键字在列表中的索引进行!!
可是我已经不想改了,生无可恋.jpg