• 第四周经典问题收集


    # 文件存储格式如下:
    # id,name,age,phone,job
    # 1,Alex,22,13651054608,IT
    # 2,Egon,23,13304320533,Tearcher
    # 3,nezha,25,1333235322,IT
    # select 列名1,列名2,… where 列名条件
    # 支持:大于小于等于,还要支持模糊查找。
    # 示例:
    # select name, age where age>22
    # select * where job=IT
    # select * where phone like 133
    #shur=selecet name,age where age>23
    user_input=input('请输入你的选则')
    dic={'id':0,'name':1,"age":2,"phone":3,"job":4}
    #user_input='celecet name,age where age>23'
    to_s=user_input.strip('celecet')
    to_s=to_s.strip()
    to_show,condit=to_s.split('where')#可以用两个变量去接受split切出来的内容
    to_show=to_show.strip()#能在循环外去空格等操作尽量在循环外去空格,
    # 否则循环里如果多次调用此变量,需要多次修改才能行
    condit=condit.strip()
    lis = []
    def cond(condit):
        if ">" in condit:
            chaifen_cond=condit.split('>')
            with open('name_list', "r", encoding='utf-8') as f:#打开文件的操作要在
                    # 循环里,因为文件中有多行,需要执行完整for循环才能读完
                for line in f:
                    line_lis = line.split(',')
                    if int(line_lis[dic[chaifen_cond[0]]]) > int(chaifen_cond[1]):
                        lis.append(line_lis)
        elif "<" in condit:
            chaifen_cond=condit.split('<')
            with open('name_list', "r", encoding='utf-8') as f:
                for line in f:
                    line_lis = line.split(',')
                    if int(line_lis[dic[chaifen_cond[0]]]) < int(chaifen_cond[1]):
                        lis.append(line_lis)
        elif "=" in condit:
            chaifen_cond=condit.split('=')
            with open('name_list', "r", encoding='utf-8') as f:
                for line in f:
                    line_lis = line.split(',')
                    if (chaifen_cond[1]) in (line_lis[dic[chaifen_cond[0]]]):
                        lis.append(line_lis)
        elif "like" in condit:
            chaifen_cond = condit.split('like')
            with open('name_list', "r", encoding='utf-8') as f:
                for line in f:
                    line_lis = line.split(',')
                    if (chaifen_cond[1]) in (line_lis[dic[chaifen_cond[0]]]):
                        lis.append(line_lis)
        return lis
    g=cond(condit)
    #print(g)
    def cond1(g):
        for i in g:
            v = ''
            to_to_show = to_show.split(',')
            for k in to_to_show:
                v+=' %s'%i[dic[k]]
            print(v)
    cond1(g)
    内有利用for循环需要避免的错误
  • 相关阅读:
    CentOS 7中cAdvisor的安装过程
    怎么查看centos版本
    使docker命令不用加sudo的方法
    Linux进程相关函数system,fork,exec函数族的区别
    git pre-commit hook failed 解决办法
    lint-staged 教程
    用webpack将多个scss文件打包成一个css文件
    js连按键盘事件
    vscode快捷键
    vim 操作命令大全
  • 原文地址:https://www.cnblogs.com/wangkun122/p/7819797.html
Copyright © 2020-2023  润新知