資源簡介 算法與程序設計大單元——python字典鞏固練習班級 姓名1.已知字典dict1={1:2,2:(1,2),(1,2):'b','b':'b1','b1':'b2'},要得到字典中的值'b',下列方法可行的是( )A.dict1[(1,2)] B.dict1{'b'} C.dict1[3] D.dict1['b1']2.某班級學習小組成員的分組情況以及學員成績分別用Python存儲在students和scores中。若students={"第一組":["小紅","小明","小張"],"第二組":["小黃","小霞","小斌"],"第三組":["小藍","小華","小誠"]},scores=[{"小紅":90,"小明":80,"小張":75},{"小黃":86,"小霞":70,"小斌":89},{"小藍":67,"小華":90,"小誠":77}],則要訪問第一組第2位學員姓名以及小明學習成績的表達式為( )A.students["第一組"][1],scores[0]["小明"]B.students["第一組"][1],scores[1]["小明"]C.students["第一組"][2],scores[0]["小明"]D.students["第一組"][2],scores[1]["小明"]3.在Python中,向m={"a":1,"b":2,"d":4}中添加鍵值對""c":3"應該使用下列哪個語句( )A.m(3)="c" B.m[2]=3 C.m["c"]=3 D.m["3"]=c4.已知x="蘋果,50",y=["蘋果",50],z={"蘋果":50},下列python表達式的值為True,正確的是( )A.x[-4::-1]==y[0] B.x[3:5]==y[1] C.y[1] in z D.z[y[0]]==505.已知dic={"姓名":"王波","年齡":"19","語文":"112","數學":"125"},下列說法不正確的是( )A.dic["語文"]+dic["數學"]的值為237B.dic["數學"] in dic的值為TrueC.int(dic["年齡"],16)的值為25D.執行dic["姓名"]="李一賀",則dic為{"姓名":"李一賀","年齡":"19","語文":"112","數學":"125"}6.將某次比賽最后得分用字典存儲:dict={"第1名":50,"第2名":48,"第3名":"47,"第4名":"45,"第5名":44,"第6名":42}。現需要查詢第3名成績,下列表達式正確的是( )A.dict{2} B.dict[2] C.dict{"第3名"} D.dict["第3名"]7.有如下 Python 程序段:a=[] ; b=[1,5,4,1,5] ; c={1:3,2:4,3:5,4:1,5:2}for i in b:if i not in a:a.append(c[i])print(a)運行該程序段后,列表a的值是( )A.[1,5,4] B.[3,2,1] C.[3,2,1,2] D.[3,2,1,3]8.使用Python程序編程探究平面上圓與圓的位置關系,程序代碼如下:def judge(a,b):dis=(cir[a][0]-cir[b][0])**2+(cir[a][1]-cir[b][1])**2if dis==(cir[a][2]+cir[b][2])**2:return 1return 0cir={'A':[1,1,1],'B':[4,5,4],'C':[0,2,1]}#cir用于存儲編號為'A'、'B'、'C'的三個圓的x,y坐標及半徑信息cnt=judge('A','B')+judge('A','C')+judge('B','C')運行程序后,變量 cnt 的值是( )A.3 B.2 C.1 D.09.Python字典中update()方法用于更新字典中的鍵/值。有字典dic={"數學":89 ,"語文":78,"英語":96},d={"物理":97,"語文":90,"信息技術":91,"地理":78}執行語句dic.update(d)后,dic的值為( )A.{"數學":89,"語文":78, "英語":96, "物理":97, "語文":90, "信息技術":91, "地理":78}B.{"數學":89, "語文":78,"英語":96, "物理":97 ,"信息技術":91,"地理":78}C.{"數學":89,'語文':90, "英語":96, "物理":97, "信息技術":91,"地理":78}D.{"數學":89, "英語":96, "物理":97, "信息技術":91 ,"地理":78}10.下列Python程序段的功能:輸入一個由數字組成的字符串,統計各數字字符出現的次數,并輸出按0~9順序出現次數是偶數次的數字及次數。s=input("請輸入數字字符串:") ; b={}for x in s:if x in b:(1)else:(2)for i in "0123456789":if (3) : print(i+"出現"+str(b[i])+"次")上述程序段中劃線處可選代碼為:①i in b and b[i]%2==0 ②b[i]%2==0 ③b[x]=1 ④b[x]+=1則(1)(2)(3)處語句依次為( )A.④③① B.③④① C.③④② D.④③②11.文本文件“score.txt”中保存了某校高二年級學生某次測試成績,王老師想按學生的成績進行評級,其中分數和等級對應關系如下表:現要求根據上表統計各等級學生人數占總人數的比例。小李編寫了一個Python程序幫助老師實現該功能:程序運行時,讀取文本文件“score.txt”的成績存儲到列表cj中,然后依次輸出從A級至E級,各等級的人數占總人數的百分比(四舍五入保留一位小數)。程序運行界面如圖所示,請閱讀代碼,在劃線處填入合適的代碼:#將學生成績保存到列表cj中,代碼略dj="ABCDE"score={"A":0,"B":0,"C":0,"D":0,"E":0}①for i in range(n):if cj[i]>=90:k=0elif cj[i]>=80:k=1elif cj[i]>=70:k=2elif cj[i]>=60:k=3else:②score[③ ]+=1for i in score:bfb=int(④ )/10print(i+"級:占"+str(bfb)+"%")12.脫氧核糖核酸(DNA)由兩條互補的堿基鏈以雙螺旋的方式結合而成。構成DNA的堿基共有4種,分別為腺嘌呤(A)、鳥嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。在兩條互補堿基鏈的對應位置上,A總是和T配對,G總是和C配對。編寫python程序實現如下功能,隨機產生一條單鏈上的堿基序列,輸出其對應的互補鏈上的堿基序列。例如:生成鏈為GCTCTTACAT,互補鏈為CGAGAATGTA。(1)實現該功能的程序段如下,請完善程序:import randomDNA=['A','G','T','C']s=''for i in range(10):r=random.choice(DNA)s=①print("生成鏈",s)match={'A':'T','G':'C','T':'A','C':'G'}t=''for c in s:t=②print("互補鏈",t)(2)將程序加框處語句改為DNA=”AGTC”,程序是否能正常運行 (選填:是/否)13.小明編寫Python程序,實現對某次評價報名序號的檢測并輸出該考生的評價類別+科類類別。報名序號的編寫方法是:由10位數字組成,畢業年份(4位)+評價類別(1位)+科類代碼(1位)+順序代碼(4位)。評價類別:1普通、2單項;科類類別:3藝術類、4體育類、5綜合類。例如:輸入報名序號“2022150001”,輸出“普通綜合類”(1)與加框處代碼功能相同的是(單選,填字母:A.s=dic[ticket[-6:-4]]/ B.s=dic[ticket[-6:-5]])(2)實現查詢功能的Python程序如下,請在劃線處填入合適的代碼。while True:ticket=①num=0for i in ticket:if i>="0" and i<="9":num=num+1if len(ticket)!=10:print("輸入長度不符合要求")elif ② :print("輸入存在非數字字符")else:breakdic={"13":"普通藝術類","14":"普通體育類","15":"普通綜合類","23":"單項藝術類","24":"單項體育類","25":"單項綜合類"}s=dic[ticket[4:6]]print("該考生的考試科類為:",s)14.在計算機進行加密或解密過程中,經常會對字符串進行移位等變換操作。某字符串的變換規則描述如下:①輸入的字符為十六進制數(英文字母大寫,確保輸入的個數為3的倍數),如4AC②字符串中的每個字符轉成四位二進制,按序拼接,如010010101100③二進制字符串每4位進行前后倒置(即4位數左右倒置)操作,如001001010011④將倒置后的字符串每3位轉換成1位十進制,按序拼接后輸出該十進制串。運行結果如下圖所示:根據該規則編寫的程序如下,請回答以下問題:(1)程序中加框處代碼有誤,請改正。(2)請在下劃線處補充完整程序:Hex={"0":"0000","1":"0001","2":"0010","3":"0011","4":"0100","5":"0101","6":"0110","7":"0111","8":"1000","9":"1001","A":"1010","B":"1011","C":"1100","D":"1101","E":"1110","F":"1111"}sch=input("請輸入一個十六進制數(字母大寫):")th=""for k in sch:if "0"<=k<="9" or "A"<=k<="F": #若k為數字字符或大寫字母① #每1位十六進制轉成4位二進制ts=""for i in range(0,② ): #每4位進行前后倒置ts+=th[i+3]+th[i+2]+th[i+1]+th[i]tob=""tmp=0for i in range(len(ts)): #二進制串轉十進制tmp=tmp*2+int(ts[i]) #累乘相加轉換成十進制if i%3==0: #每3個字符為一組進行轉換后的拼接tob=tob+str(tmp)tmp=0print("變換后的字符串為:",tob)答案1——5:AACDB6——10:DCBCA11.① n = len(cj)② k = 4 或 k = -1③ dj[k]④ score[i]/n*1000+0.512.(1)①s+r 或 r+s②t+match[c](2)是13.(1)A(2)①input("請輸入準考證號:") 沒有提示信息也給分② num!=10:(1)(i+1)%3==0或i%3==2(2)① th=th+Hex[k]② len(th),4 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫