Maison >développement back-end >Tutoriel Python >Exemple de code pour créer une table d'informations sur les employés à l'aide de Python

Exemple de code pour créer une table d'informations sur les employés à l'aide de Python

不言
不言avant
2018-10-09 16:45:162653parcourir

Cet article vous propose un exemple de code sur l'utilisation de Python pour créer un tableau d'informations sur les employés. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Il s'agit d'une question d'exercice complète, les exigences sont les suivantes :
Créez un tableau d'informations sur les employés, le format est :

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

L'exigence peut être interrogée en fonction sur les instructions conditionnelles, le format est select Les commandes sont séparées par des espaces

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] == '<&#39;:#检查条件语句是否是大于号
                if lis[3] in lis_title: #字段是否包含条件语句
                    m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
                else:
                    print(&#39;字段不含有该条件&#39;)
                    return
                for v in f:
                    lis_f = v.split(&#39;,&#39;)#把取出来的每条数据都转化成列表
                    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(&#39;无法进行比较&#39;)
            elif lis[4] == &#39;=&#39;:#检查条件语句是否是大于号

                if lis[3] in lis_title: #字段是否包含条件语句
                    m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
                else:
                    print(&#39;字段不含有该条件&#39;)
                    return
                for v in f:
                    lis_f = v.split(&#39;,&#39;)#把取出来的每条数据都转化成列表
                    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] == &#39;like&#39;:#定义like模糊搜索
                if lis[3]in lis_title:
                    m = lis_title.index(lis[3]) #m表示符合条件语句的字符串所在列表位置
                else:
                    print(&#39;字段不含有该条件&#39;)
                    return
                for v in f:
                    lis_f = v.split(&#39;,&#39;)#把取出来的每条数据都转化成列表
                    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(&#39;请以空格将各个名字隔开&#39;)       
        else:print(&#39;请输入正确的指令&#39;)
    if n!= []:#防止乱输指令后报错
        for i in range(len(lis_res[n[0]])):#输出结果
            for k in n:
                print(lis_res[k][i],end=&#39;  &#39;)
            print(&#39;\n&#39;,end=&#39;&#39;)
emp()
请输入查询语句,格式为:select *** where *** > ***select * where phone like 188
1  tom  25  18888888888  it

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer