python 学习笔记 day12 作业讲解--员工信息表

 

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('\n')
                        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

 

posted @ 2018-09-04 13:59  写的BUG代码少  阅读(325)  评论(0编辑  收藏  举报