StuInfo類:
def __init__(self):
Self.stu = [{"SnO": "1 "," sname ":"姓名","語文成績":64,"數學成績":34,"英語成績":94,"計算機成績":83},
{"Sno":"2 "," Sname ":"姓名","語文成績":44,"數學成績":24,"英語成績":44,"計算機成績":71},
{"Sno":"3 "," Sname ":"姓名","語文成績":74,"數學成績":35,"英語成績":74,"計算機成績":93},
{"Sno":"4 "," Sname ":"姓名","語文成績":94,"數學成績":54,"英語成績":24,"計算機成績":73}]
Self.attribute={"Sno ":"學號",
“Sname”:“name”,
《中國分數》:“中國分數”,
「MathsScore」:「數學成績」,
“英語成績”:“英語成績”,
“計算機分數”:“計算機分數”
}
def _add(自身):
''添加'''
singleInfo={}
對於自我中的我.屬性:
如果“得分”在I:
single info[I]= int(raw _ input(self . attribute[I]+" \ n "))
否則:
single info[I]= raw _ input(self . attribute[I]+" \ n ")。條狀()
自我。Stu.append(singleInfo)
打印“添加成功確定”
對於singleInfo中的I:
打印I," = ",singleInfo[i]
def _del(self):
" ""刪除學號為Sno的記錄" " "
Sno=raw_input("學生編號:\n ")
自我。Stu.remove(自我。__getInfo(Sno))
打印“刪除成功確定”
定義_更新(自身):
" ""更新數據" " "
Sno=raw_input("學號\n ")。條狀()
Prefix= "修改"
update operate = { " 1 ":" Chinese score ",
" 2":"MathsScore ",
“3”:“English score”,
" 4":"ComputerScore"}
對於更新操作中的I:
印刷體I,"->,prefix+self . attribute[update operate[I]]
GetOperateNum=raw_input("選擇操作:\n ")
如果getOperateNum:
GetNewValue=int(raw_input("輸入新值:\n "))
記錄=自我。__getInfo(Sno)
record[update operate[getOperateNum]]= get new value
print " modify "+str(update operate[getoperatenum])+" score = ",獲取新值," \ n訪問成功"
def _getInfo(self):
" ""查詢數據" " "
雖然正確:
打印“1->;學號查詢2-& gt;條件查詢3->;退出”
GetNum=raw_input("選擇:\n ")
if getNum=="1 ":
Sno=raw_input("學生編號:\n ")
打印過濾器(lambda record:record[" Sno "]= = Sno,self。斯圖)[0]
elif getNum=="2 ":
打印“中文樂譜”,“MathsScore數學成績;”“英語分數英語分數”,“ComputerScore電腦評分;”
打印“等於=,小於,大於或等於> =,小於或等於
Print "輸入查詢條件,如以下格式如:ChineseScore & gt=60 "
Expr=raw_input ("condition: \n ")
Infos=self。__getInfo(expr=expr)
如果信息:
打印" * * * * % d條記錄" %len(Infos )"
對於信息中的I:
打印I
否則:
打印“記錄為空”
elif getNum=="3 ":
破裂
否則:
及格
def __getInfo(self,Sno=None,expr= " "):
" " "查詢數據
根據學號_ getinfo(" 111111 ")
根據score _ getInfo(" English sorce & gt;80")"""
如果Sno:
返回過濾器(lambda record:record[" Sno "]= = Sno,self。斯圖)[0]
用於在[" >中操作;= "," >," & lt= "," & lt,"==","!="]:
如果在expr中操作:
gradeName,value=expr.split(operate)
返回過濾器(lambda record:eval(repr(record[grade name . strip()])+operate+value . strip()),self。斯圖)
返回{}
def _showAll(self):
" ""顯示所有記錄" " "
因為我在自我中。斯圖:
打印I
@靜態方法
定義測試():
" ""測試" " "
_StuInfo=StuInfo()
雖然正確:
打印“1->;輸入數據2->;修改數據3->刪除數據4->;查詢數據5->;查看數據6->;退出”
T=raw_input("選擇:\n ")
如果t=="1 ":
打印“輸入數據”
_StuInfo。_添加()
elif t=="2 ":
打印“修改數據”
_StuInfo。_更新()
elif t=="3 ":
打印“刪除數據”
_StuInfo。_del()
elif t=="4 ":
打印“查詢數據”
_StuInfo。_getInfo()
elif t=="5 ":
打印“顯示所有記錄”
_StuInfo。_showAll()
elif t=="6 ":
破裂
否則:
及格
if __name__=="__main__ ":
StuInfo.test()