摘要:這是一道綜合練習題,要求如下創建員工信息表,格式為字段字段字段字段字段要求可以根據條件語句進行查詢,格式為命令之間用空格隔開定義最終存儲數據的列表請輸入查詢語句,格式為定義存放輸入語句的列表表示符合查詢變量的字符串所在列表位置設定關鍵字條
這是一道綜合練習題,要求如下:
創建員工信息表,格式為:
#字段1,字段2,字段3,字段4,字段5 #1,*** ,*** , *******,*** #2,***, ***, *******,*** #3,*** ,*** , *****, ***
要求可以根據條件語句進行查詢,格式為 select where 命令之間用空格隔開
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(" ",end="") emp()
請輸入查詢語句,格式為:select *** where *** > ***select * where phone like 188 1 tom 25 18888888888 it
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42550.html
摘要:模塊里有兩個非常重要的分別是和。返回一個對象,它包括文件的詳細信息。將文檔內的指定文件解壓到當前目錄。為文件路徑,為添加到文檔之后保存的名稱參數表示壓縮方法,它的值可以是或。預留字段,當前實現總是返回。 ZipFile模塊里有兩個非常重要的class, 分別是 ZipFile和ZipInfo。ZipFile是主要的類,用來創建和讀取zip文件,而ZipInfo是存儲的zip文件的每個文...
摘要:損失函數此次競賽我們采用的基線損失函數為,該損失函數在訓練過程中模擬課程學習的思想,按照樣本從易到難的順序進行訓練。 1. 引言10月11-17日,萬眾期待的國際計算機視覺大會 ICCV 2021 (International Conference on Computer Vision) 在線上如期舉行,受到全...
摘要:對不同的類型進行對應的操作提供幫助主函數,提供用戶輸入界面。對用戶輸入的語法正確性鏡像解析,并最終解析成字典格式表執行程序鏈接程序運行命令程序正文執行腳本主入口程序主函數獲取用戶輸入,并對用戶進行解析。 程序要求 文件存儲時可以這樣表示 id,name,age,phone,dept,enroll_date 1,Alex Li,22,13651054608,IT,2013-04-01...
摘要:棧底是固定的,而棧頂浮動的如果棧中元素個數為零則被稱為空棧。入棧將數據保存到棧頂。鏈棧鏈棧是指棧的鏈式存儲結構,是沒有附加頭節點的運算受限的單鏈表,棧頂指針是鏈表的頭指針。 一、喜歡單挑線性表 1.線性表的特性 線性表是一個線性結構,它是一個含有n≥0個節點的有限序列。在節點中,有且僅有一個開始節點沒有前驅并有一個后繼節點,有且僅有一個終端節點沒有后繼并有一個前驅節點。其他的節點都有且...
閱讀 2080·2021-11-24 10:34
閱讀 3055·2021-11-22 11:58
閱讀 3712·2021-09-28 09:35
閱讀 1724·2019-08-30 15:53
閱讀 2770·2019-08-30 14:11
閱讀 1551·2019-08-29 17:31
閱讀 542·2019-08-26 13:53
閱讀 2141·2019-08-26 13:45