1.字典型資料格式要求“{}”結合“:”,清單型資料格式要求“[]”,隻有清單型是有序的。
2.單擊【考生檔案夾】,打開程式檔案【py202-1】。
3.【open】函數格式:open("檔案名",打開方式),其中檔案名要加雙引号,當省略打開方式時,會以預設模式r打開。
4.模式r與模式rb都是以隻讀方式打開檔案,但模式rb以二進制格式打開檔案。
5.模式r+打開一個檔案用于讀寫,模式rb+以二進制格式打開檔案用于讀寫,模式w打開一個檔案隻用于寫入,模式wb以二進制格式打開檔案隻用于寫,模式w+打開一個檔案用于讀寫,與模式r+不同的是w+會進行一個覆寫。
6.函數file.readline():讀取檔案裡的一行,file.readlines([size]):讀取檔案裡所有的内容,for line in f: print line:從f裡面把所有行讀取出來。
7.函數f.write("hello\n"):在檔案裡寫入 hello後換行。
8.函數f.seek(偏移量,[起始位置]):用來移動檔案指針,其中起始位置:0表示檔案頭,1表示目前位置,2表示檔案尾,函數f.close() 關閉檔案。
9.使用split字元分割後結果是一個清單型資料。
10.count()方法用于統計某字元出現的次數。
11.字典 get()函數,在字典型資料裡面要擷取某個鍵對應的值要使用get方法,當字典型資料裡沒有想要查詢的鍵時可以使用預設值的方法。
12.list()方法用于将資料轉變為清單型資料,在将a轉換為清單後,a此時還是一個副本,需要使用a=list(a)将其轉換為清單型資料,轉換字典型時需要使用list(dict.item())。
13.函數sort用于排序,清單型資料才可以進行排序,a.sort(reverse=False)為升序排序函數預設為降序排序,a.sort(reverse=True)為降序排序。
14.可以使用固定語句 A=lambda x;x+1 def A(x); return x+1,對字典型資料進行排序。
15.使用f=open("name.txt")打開檔案,使用語句names=f.readlines()将檔案裡的所有的行全部讀入到變量names中,使用同樣方法打開vote.txt檔案并讀取到變量votes中。
16.使用語句for vote in votes:将字元串votes每一行的資料都讀出來,ls=vote.split()進行分割,分割後資料會變成清單型資料,if len(ls)=1:進行判斷是否符合條件,當等于1時符合條件,當等于2時不符合條件,for name is names: if name.count(ls[0])==1: n=n+1 d[ls[0]]=d.get(ls[0],0)+1 統計每個人的有效票數,print("有效票數{},format(n)")輸出。
17.解題思路:(1), 把兩個檔案中内容,存儲到字元串變量中。對應代碼:f=open("name.txt") names=f.readlines() (2),判斷投票文檔中的投票是否有效。逐行對投票的結果進行讀取讀取後,進行劃分變量就變成清單型資料,再利用len函數進行判斷。對應代碼:for vote in votes: ls=vote.split() if len(ls)=1: (3),通過判斷名字出現的次數為1,計為有效票。對應代碼:for name is names: if name.count(ls[0])==1: n=n+1 d[ls[0]]=d.get(ls[0],0)+1 。
18.問題二:前半段的程式與問題一的程式相同,不同處使用語句bj=list(d.items()),把字典型資料轉換為清單型資料,bj.sort(key=lambda x:x[1],reverse=True)降序排序,name,score=bj[0] 元祖bj[0]第一個數值傳遞給name第二個數值傳遞給score,print("當選班長的同學為:{},票數為:{}".format(name,score))輸出。