使用Python创建员工信息表的实例代码


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于使用Python创建员工信息表的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这是一道综合练习题,要求如下:
创建员工信息表,格式为:

1

2

3

4

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

#1,***  ,***  ,  *******,***

#2,***,  ***, *******,***

#3,*** ,***   ,  *****,  ***

要求可以根据条件语句进行查询,格式为 select where 命令之间用空格隔开

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

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()

1

2

请输入查询语句,格式为:select *** where *** > ***select * where phone like 188

1  tom  25  18888888888  it

以上就是使用Python创建员工信息表的实例代码的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python os.close() 方法是什么?os.close能做到什么?

用matplotlib如何绘制条形图、直方图和散点图

Python三角形判定怎么做

Python中next和send的用法介绍(代码)

Python是面向对象还是面向过程的

Python是怎么操作文件和目录的?

Python的if语句怎么写

Python如何判断整数

静态方法怎么使用

Python区分大小写吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...