作業員工信息表實現增刪改查操作
阿新 • • 發佈:2017-09-04
nbsp 手機號 add bre mark 作業 ket split 格式不正確
有以下員工信息表
當然此表你在文件存儲時可以這樣表示
1 |
1 ,Alex Li, 22 , 13651054608 ,IT, 2013 - 04 - 01
|
現需要對這個員工信息文件,實現增刪改查操作
- 可進行模糊查詢,語法至少支持下面3種:
- select name,age from staff_table where age > 22
- select * from staff_table where dept = "IT"
- select * from staff_table where enroll_date like "2013"
- 查到的信息,打印後,最後面還要顯示查到的條數
- 可創建新員工紀錄,以phone做唯一鍵,staff_id需自增
- 可刪除指定員工信息紀錄,輸入員工id,即可刪除
- 可修改員工信息,語法如下:
- UPDATE staff_table SET dept="Market" WHERE where dept = "IT"
註意:以上需求,要充分使用函數,請盡你的最大限度來減少重復代碼!
yuangong文件
1,Alex Li,22,13651054608,IT,2013-04-01
2,Jack Wang,30,13304320533,HR,2015-05-03
3,Rain Liu,25,13832353221,Sales,2016-04-22
4,Mack Cao,40,13561453431,HR,2009-03-01
5,lzd,112,13912985190,IT,2019-1-1
代碼如下:
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:lzd #創建字典 list=dict() #將文件導入到字典 with open(‘yuangong‘,‘r‘,encoding=‘utf-8‘) as f: for i in f: j=i.split(‘,‘,1) list[j[0]]=j[1].strip().split(‘,‘) #print(list) #每次操作完畢都引用裝飾器函數保存下文件 def baocun(func): def warpper(*args,**kwargs): func() with open(‘yuangong‘, ‘w‘, encoding=‘utf-8‘) as f: for i in list: f.write(i+‘,‘+‘,‘.join(list[i])+‘\n‘) print(‘文件保存成功!\n‘) return warpper def chaxun(): while True: # for i in list: # print(i,list[i]) print(""" 1、歲數 2、部門 3、入職年份 4、退出 """) tmpchaxun = input("請輸入你想操作的步驟?直接輸入數字即可。\n") if tmpchaxun==‘1‘ : tmpsuishu=input("請輸入年齡,下面顯示大於該年齡的員工:\n") numm=0 if tmpsuishu.isdigit(): for i in list: if int(list[i][1])>int(tmpsuishu): print(list[i][0],list[i][1]) numm=numm+1 print("大於%s歲數一共有%s個人"%(tmpsuishu, numm)) else: print(‘年齡需要輸入數字的,請重新輸入\n‘) elif tmpchaxun==‘2‘ : tmpbumen=input(‘請輸入部門名稱,下面顯示該部門的所有員工:\n‘) numm=0 for i in list: if list[i][3] == tmpbumen: print(list[i]) numm=numm+1 print("該%s部門一共有%s個人"%(tmpbumen,numm)) elif tmpchaxun==‘3‘ : tmpriqi=input(‘請輸入員工入職年份,下面顯示該年份的所有員工:\n‘) numm=0 if tmpriqi.isdigit(): for i in list: if tmpriqi in list[i][4]: print(list[i]) numm=numm+1 print("該%s年一共有%s個人" %(tmpriqi, numm)) else: print(‘年份需要輸入數字的,請重新輸入\n‘) elif tmpchaxun==‘4‘: break else: print(‘請輸入正確的數字。謝謝!\n‘) @baocun def chuangjian(): while True: tmpxinxi = input(‘請輸入員工的“姓名/年齡/手機號碼/部門/入職時間” ,請用/來間隔\n‘) xinxi=tmpxinxi.split(‘/‘) if len(xinxi) != 5: print(‘輸入的格式不正確請重新輸入\n‘) continue elif xinxi[2].isdigit(): for kk in list.values(): if xinxi[2] in kk: print("手機號碼重復啦~請重新輸入!\n") break else: tmpid=str(int(sorted(list)[-1])+1) list[tmpid]=xinxi print(‘用戶添加完畢!\n‘) break else: print(‘手機號碼輸入錯誤~!\n‘) #print(list) @baocun def shanchu(): #print(‘shanchu‘) while True: # for i in list: # print(i,list[i]) tmpshanchu=input(‘請輸入你想刪除的人員id號,退出請直接輸入q\n‘) if tmpshanchu in list: del list[tmpshanchu] print(‘刪除人員%s成功\n‘%tmpshanchu) elif tmpshanchu==‘q‘: break else: print(‘找不到這個人的id啊?你是不是輸入錯誤了?\n‘) @baocun def xiugai(): #print(‘xiugai‘) while True: # for i in list: # print(i,list[i]) tmpxiugai=input(‘請輸入你想修改部門的名稱,比如你想修改Market的人員變成IT部門,那麽直接輸入Market/IT,退出輸入q\n‘) if tmpxiugai==‘q‘: break bumen=tmpxiugai.split(‘/‘) if len(bumen) !=2: print("輸入格式不正確,請重新輸入\n") continue else: for i in list: if bumen[0] == list[i][3]: list[i][3]=bumen[1] print(‘部門修改完畢~!\n‘) while True: print(""" 1、查詢 2、創建 3、刪除 4、修改 5、退出 """) choosedic={1:chaxun,2:chuangjian,3:shanchu,4:xiugai} userchoose=int(input("請輸入你想操作的步驟?直接輸入數字即可。\n")) if userchoose in choosedic: choosedic[userchoose]() elif userchoose==5: exit() else: print(‘請輸入正確的數字\n‘)
作業員工信息表實現增刪改查操作