測驗7
選擇題
1.對于Python檔案,以下描述正确的是:
同一個檔案可以既采用文本方式打開,也可以采用二進制方式打開2.以下選項不是Python檔案讀操作的是:
readtext()3.給定清單ls = [1, 2, 3, “1”, “2”, “3”],其元素包含2種資料類型,哪個選項是清單ls的資料組織次元?
一維資料4.二維清單ls=[[1,2,3], [4,5,6],[7,8,9]],哪個選項能擷取其中元素5?
ls[1][1]5.關于Python檔案的‘+’打開模式,哪個選項的描述是正确的?
與r/w/a/x一同使用,在原功能基礎上增加同時讀寫功能6.Python對檔案操作采用的統一步驟是:
打開—操作—關閉7.關于檔案關閉的close()方法,哪個選項的描述是正确的?
檔案處理後可以不用close()方法關閉檔案,程式退出時會預設關閉8.關于CSV檔案的描述,哪個選項的描述是錯誤的?
CSV檔案通過多種編碼表示字元9.關于資料組織的次元,哪個選項的描述是錯誤的?
資料組織存在次元,字典類型用于表示一維和二維資料10.以下選項對檔案描述錯誤的是:
檔案是程式的集合和抽象文本的平均列數
列印輸出附件檔案的平均列數,計算方法如下:
(1)有效行指包含至少一個字元的行,不計算空行;
(2)每行的列數為其有效字元數;
(3)平均列數為有效行的列數平均值,采用四舍五入方式取整數進位。
f = open("latex.log")
s, c = 0, 0
for line in f:
line = line.strip("\n")
if line == "":
continue
s += len(line)
c += 1
print(round(s / c))
CSV格式清洗與轉換
附件是一個CSV格式檔案,提取資料進行如下格式轉換:
(1)按行進行倒序排列;
(2)每行資料倒序排列;
(3)使用分号(;)代替逗号(,)分割資料,無空格;
按照上述要求轉換後将資料輸出。
f = open("data.csv")
ls = f.readlines()
ls = ls[::-1]
lt = []
for item in ls:
item = item.strip("\n")
item = item.replace(" ", "")
lt = item.split(",")
lt = lt[::-1]
print(";".join(lt))
f.close()
練習7
文本行數
列印輸出附件檔案的有效行數,注意:空行不計算為有效行數。
f = open("latex.log")
s = 0
for line in f:
line = line.strip('\n')
if len(line) == 0:
continue
s += 1
print("共{}行".format(s))
檔案字元分布
統計附件檔案的小寫字母a-z的字元分布,即出現a-z字元的數量,并輸出結果。
同時請輸出檔案一共包含的字元數量。
注意輸出格式,各元素之間用英文逗号(,)分隔。
答案可能包含a-z共26個字元的分布,如果某個字元沒有出現,則不顯示,輸出順序a-z順序。
f = open("latex.log")
cc = 0
d = {}
for i in range(26):
d[chr(ord('a')+i)] = 0
for line in f:
for c in line:
d[c] = d.get(c, 0) + 1
cc += 1
print("共{}字元".format(cc), end="")
for i in range(26):
print(",{}:{}".format(chr(ord('a')+i), d[chr(ord('a')+i)]), end="")
檔案獨特行數
統計附件檔案中與其他任何其他行都不同的行的數量,即獨特行的數量。
f = open("latex.log")
ls = f.readlines()
s = set(ls)
for i in s:
ls.remove(i)
t = set(ls)
print("共{}獨特行".format(len(s)-len(t)))
CSV格式列變換
附件是一個CSV檔案,請将每行按照列逆序排列後輸出,不改變各元素格式(如周圍空格布局等)。
f = open("data.csv")
for line in f:
line = line.strip("\n")
ls = line.split(",")
ls = ls[::-1]
print(",".join(ls))
f.close()
CSV格式資料清洗
附件是一個CSV檔案,其中每個資料前後存在空格,請對其進行清洗,要求如下:
(1)去掉每個資料前後空格,即資料之間僅用逗号(,)分割;
(2)清洗後列印輸出。
f = open("data.csv")
s = f.read()
s = s.replace(" ","")
print(s)
f.close()