Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode zum Erstellen einer Mitarbeiterinformationstabelle mit Python

Beispielcode zum Erstellen einer Mitarbeiterinformationstabelle mit Python

不言
不言nach vorne
2018-10-09 16:45:162646Durchsuche

Dieser Artikel enthält Beispielcode zur Verwendung von Python zum Erstellen einer Mitarbeiterinformationstabelle. Ich hoffe, dass er für Freunde hilfreich ist.

Dies ist eine umfassende Übungsfrage. Die Anforderungen lauten wie folgt:
Erstellen Sie eine Mitarbeiterinformationstabelle im Format:

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

Die Anforderung kann basierend auf bedingten Anweisungen abgefragt werden Wählen Sie im Format aus, wobei Befehle durch Leerzeichen getrennt sind

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('\n',end='')
emp()
rrree

Das obige ist der detaillierte Inhalt vonBeispielcode zum Erstellen einer Mitarbeiterinformationstabelle mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen