成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python綜合練習(xí)之創(chuàng)建員工信息表

AlienZHOU / 586人閱讀

摘要:這是一道綜合練習(xí)題,要求如下創(chuàng)建員工信息表,格式為字段字段字段字段字段要求可以根據(jù)條件語句進(jìn)行查詢,格式為命令之間用空格隔開定義最終存儲(chǔ)數(shù)據(jù)的列表請(qǐng)輸入查詢語句,格式為定義存放輸入語句的列表表示符合查詢變量的字符串所在列表位置設(shè)定關(guān)鍵字條

這是一道綜合練習(xí)題,要求如下:
創(chuàng)建員工信息表,格式為:

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

要求可以根據(jù)條件語句進(jìn)行查詢,格式為 select where 命令之間用空格隔開

def emp(): 
    lis_res = [[],[],[],[],[]] #定義最終存儲(chǔ)數(shù)據(jù)的列表
    with open("yuangong","r",encoding="utf-8") as f:
        cha = input("請(qǐng)輸入查詢語句,格式為:select *** where *** > ***").strip()
        lis = cha.split(" ")#定義存放輸入語句的列表
        n = [] #n表示符合查詢變量的字符串所在列表位置
        if lis[0] == "select" and lis[2] == "where":#設(shè)定關(guān)鍵字條件
            lis1 = lis[1].split(",")#定義查詢?cè)氐牧斜?            lis_title = f.readline().split(",") #文件中第一行為字段名
            lis_title = [s.strip() for s in lis_title]#列表推導(dǎo)式,去掉每個(gè)元素兩邊的空格
            for v in lis1:#循環(huán)遍歷要查詢的字段是否在文件中
                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] == ">":#檢查條件語句是否是大于號(hào)
                if lis[3] in lis_title: #字段是否包含條件語句
                    m = lis_title.index(lis[3]) #m表示符合條件語句的字符串所在列表位置
                else:
                    print("字段不含有該條件")
                    return
                for v in f:
                    lis_f = v.split(",")#把取出來的每條數(shù)據(jù)都轉(zhuǎn)化成列表
                    lis_f = [s.strip() for s in lis_f] #列表推導(dǎo)式,去掉每個(gè)元素兩邊的空格
                    if lis_f[m].isdigit() and lis[5].isdigit():#檢查條件是否都為數(shù)字
                        if int(lis_f[m]) > int(lis[5]):
                            for i in n:#如果條件成立則把結(jié)果追加到lis_res中
                                lis_res[i].append(lis_f[i])
                    else:print("無法進(jìn)行比較")
            elif lis[4] == "<":#檢查條件語句是否是大于號(hào)
                if lis[3] in lis_title: #字段是否包含條件語句
                    m = lis_title.index(lis[3]) #m表示符合條件語句的字符串所在列表位置
                else:
                    print("字段不含有該條件")
                    return
                for v in f:
                    lis_f = v.split(",")#把取出來的每條數(shù)據(jù)都轉(zhuǎn)化成列表
                    lis_f = [s.strip() for s in lis_f] #列表推導(dǎo)式,去掉每個(gè)元素兩邊的空格
                    if lis_f[m].isdigit() and lis[5].isdigit():#檢查條件是否都為數(shù)字
                        if int(lis_f[m]) < int(lis[5]):
                            for i in n:#如果條件成立則把結(jié)果追加到lis_res中
                                lis_res[i].append(lis_f[i])
                    else:print("無法進(jìn)行比較")
            elif lis[4] == "=":#檢查條件語句是否是大于號(hào)

                if lis[3] in lis_title: #字段是否包含條件語句
                    m = lis_title.index(lis[3]) #m表示符合條件語句的字符串所在列表位置
                else:
                    print("字段不含有該條件")
                    return
                for v in f:
                    lis_f = v.split(",")#把取出來的每條數(shù)據(jù)都轉(zhuǎn)化成列表
                    lis_f = [s.strip() for s in lis_f] #列表推導(dǎo)式,去掉每個(gè)元素兩邊的空格
                    if lis_f[m] == lis[5]:
                        for i in n:#如果條件成立則把結(jié)果追加到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(",")#把取出來的每條數(shù)據(jù)都轉(zhuǎn)化成列表
                    lis_f = [s.strip() for s in lis_f] #列表推導(dǎo)式,去掉每個(gè)元素兩邊的空格
                    if lis[5] in lis_f[m]:
                        for i in n:
                            lis_res[i].append(lis_f[i])                
            else:print("請(qǐng)以空格將各個(gè)名字隔開")       
        else:print("請(qǐng)輸入正確的指令")
    if n!= []:#防止亂輸指令后報(bào)錯(cuò)
        for i in range(len(lis_res[n[0]])):#輸出結(jié)果
            for k in n:
                print(lis_res[k][i],end="  ")
            print("
",end="")
emp()
請(qǐng)輸入查詢語句,格式為:select *** where *** > ***select * where phone like 188
1  tom  25  18888888888  it  

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42550.html

相關(guān)文章

  • python標(biāo)準(zhǔn)庫學(xué)習(xí)之zipfile模塊

    摘要:模塊里有兩個(gè)非常重要的分別是和。返回一個(gè)對(duì)象,它包括文件的詳細(xì)信息。將文檔內(nèi)的指定文件解壓到當(dāng)前目錄。為文件路徑,為添加到文檔之后保存的名稱參數(shù)表示壓縮方法,它的值可以是或。預(yù)留字段,當(dāng)前實(shí)現(xiàn)總是返回。 ZipFile模塊里有兩個(gè)非常重要的class, 分別是 ZipFile和ZipInfo。ZipFile是主要的類,用來創(chuàng)建和讀取zip文件,而ZipInfo是存儲(chǔ)的zip文件的每個(gè)文...

    Magicer 評(píng)論0 收藏0
  • ICCV 2021 口罩人物身份鑒別全球挑戰(zhàn)賽冠軍方案分享

    摘要:損失函數(shù)此次競(jìng)賽我們采用的基線損失函數(shù)為,該損失函數(shù)在訓(xùn)練過程中模擬課程學(xué)習(xí)的思想,按照樣本從易到難的順序進(jìn)行訓(xùn)練。 1. 引言10月11-17日,萬眾期待的國際計(jì)算機(jī)視覺大會(huì) ICCV 2021 (International Conference on Computer Vision) 在線上如期舉行,受到全...

    nidaye 評(píng)論0 收藏0
  • python初學(xué):第二步——員工信息增刪改查程序

    摘要:對(duì)不同的類型進(jìn)行對(duì)應(yīng)的操作提供幫助主函數(shù),提供用戶輸入界面。對(duì)用戶輸入的語法正確性鏡像解析,并最終解析成字典格式表執(zhí)行程序鏈接程序運(yùn)行命令程序正文執(zhí)行腳本主入口程序主函數(shù)獲取用戶輸入,并對(duì)用戶進(jìn)行解析。 程序要求 文件存儲(chǔ)時(shí)可以這樣表示 id,name,age,phone,dept,enroll_date 1,Alex Li,22,13651054608,IT,2013-04-01...

    impig33 評(píng)論0 收藏0
  • 算法學(xué)習(xí)之數(shù)據(jù)結(jié)構(gòu)線性、堆、棧

    摘要:棧底是固定的,而棧頂浮動(dòng)的如果棧中元素個(gè)數(shù)為零則被稱為空棧。入棧將數(shù)據(jù)保存到棧頂。鏈棧鏈棧是指棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),是沒有附加頭節(jié)點(diǎn)的運(yùn)算受限的單鏈表,棧頂指針是鏈表的頭指針。 一、喜歡單挑線性表 1.線性表的特性 線性表是一個(gè)線性結(jié)構(gòu),它是一個(gè)含有n≥0個(gè)節(jié)點(diǎn)的有限序列。在節(jié)點(diǎn)中,有且僅有一個(gè)開始節(jié)點(diǎn)沒有前驅(qū)并有一個(gè)后繼節(jié)點(diǎn),有且僅有一個(gè)終端節(jié)點(diǎn)沒有后繼并有一個(gè)前驅(qū)節(jié)點(diǎn)。其他的節(jié)點(diǎn)都有且...

    huaixiaoz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<