zoukankan      html  css  js  c++  java
  • 第四周经典问题收集

    # 文件存储格式如下:
    # 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循环需要避免的错误
  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/wangkun122/p/7819797.html
Copyright © 2011-2022 走看看