Python基本程式設計題
問題1:僅使用 Python 基本語法,即不使用任何模組,編寫 Python 程式計算下列數學表示式的結果並輸出,小數點後保留3位。
a=3**4+5*(6**7) x=pow(a/8,0.5) print("{:.3f}".format(x))
問題2: 以我國第十九次全國代表大會報告中一句話作為字串變數 s,完善 Python 程式,分別用 Python 內建函式及 jieba 庫中已有函式計算字串 s 的中文字元個數及中文詞語個數。注意,中文字元包含中文標點符號。(提交的程式碼應包括題目中給出的部分)
import jieba s = "中國特色社會主義進入新時代,我國社會主要矛盾已經轉化為人民日益增長的美好生活需要和不平衡不充分的發展之間的矛盾。" n = len(s) m = len(jieba.lcut(s)) print("中文字元數為{},中文詞語數為{}。".format(n, m))
問題3: 0x4DC0 是一個十六進位制數,它對應的 Unicode 編碼是中國古老的《易經》六十四卦的第一卦,請輸出第 51 卦(震卦)對應的 Unicode 編碼的二進位制、十進位制、八進位制和十六進位制格式。
b=0x4DC0+50 print("二進位制{0:b}、十進位制{0}、八進位制{0:o}、十六進位制{0:x}".format(b))
問題4:使用 turtle 庫的 turtle.fd() 函式和 turtle.seth() 函式繪製一個邊長為 200 的正方形,效果如下圖所示。請結合格式框架,補充橫線處程式碼。
import turtle d = 0 for i in range(4): turtle.fd(200) d = d+ 90 turtle.seth(d)
問題5:列表 ls 中儲存了我國 39 所 985 高校所對應的學校型別,請以這個列表為資料變數,完善 Python 程式碼,統計輸出各型別的數量。
ls = ["綜合", "理工", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合",\ "師範", "理工", "綜合", "理工", "綜合", "綜合", "綜合", "綜合", "綜合","理工",\ "理工", "理工", "理工", "師範", "綜合", "農林", "理工", "綜合", "理工", "理工", \ "理工", "綜合", "理工", "綜合", "綜合", "理工", "農林", "民族", "軍事"] d = {} for word in ls: d[word] = d.get(word,0) + 1 # print(d.get(word,0)) # # print(d) for k in d: print("{}:{}".format(k,d[k]))
問題6:
《論語》是儒家學派的經典著作之一,主要記錄了孔子及其弟子的言行。網路上有很多《論語》文字版本。這裡給出了一個版本,檔名稱為“論語-網路版.txt”,其內容採用如下格式組織:
【原文】 1.11子曰:“父在,觀其(1)志;父沒,觀其行(2);三年(3)無改於父之道(4),可謂孝矣。” 【註釋】 (略) 【譯文】 (略) 【評析】 (略)
該版本通過【原文】標記《論語》原文內容,採用【註釋】、【譯文】和【評析】標記對原文的註釋、譯文和評析。
Q1:請編寫程式,提取《論語》文件中所有原文內容,輸出儲存到“論語-提取版.txt”檔案。輸出檔案格式要求:去掉文章中原文部分每行行首空格及如“1.11”等的數字標誌,行尾無空格、無空行。參考格式如下(原文中括號及內部數字是對應原始檔中註釋項的標記):
子曰(1):“學(2)而時習(3)之,不亦說(4)乎?有朋(5)自遠方來,不亦樂(6)乎?人不知(7),而不慍(8),不亦君子(9)乎?” 有子(1)曰:“其為人也孝弟(2),而好犯上者(3),鮮(4)矣;不好犯上,而好作亂者,未之有也(5)。君子務本(6),本立而道生(7)。孝弟也者,其為人之本與(8)?” 子曰:“巧言令色(1),鮮(2)仁矣。” (略)
fi = open("論語-網路版.txt","r",encoding="utf-8") fo = open("論語-提取版.txt","w") wflag = False #寫標記 for line in fi: if "【" in line: #遇到【時,說明已經到了新的區域,寫標記置否 wflag = False if "【原文】" in line: #遇到【原文】時,設定寫標記為True wflag = True continue if wflag == True: #根據寫標記將當前行內容寫入新的檔案 for i in range(0,25): for j in range(0,25): line = line.replace("{}.{}".format(i,j),"**") for i in range(0,10): line = line.replace("*{}".format(i),"") for i in range(0,10): line = line.replace("{}*".format(i),"") line = line.replace("*","") fo.write(line) fi.close() fo.close()
Q2:請編寫程式,在“論語-提取版.txt”基礎上,進一步去掉每行文字中所有括號及其內部數字,儲存為“論語-原文.txt”檔案。參考格式如下:
子曰:“學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知,而不慍,不亦君子乎?” 有子曰:“其為人也孝弟,而好犯上者,鮮矣;不好犯上,而好作亂者,未之有也。君子務本,本立而道生。孝弟也者,其為人之本與?” 子曰:巧言令色,鮮仁矣。” (略)
fi = open("論語-提取版.txt","r") fo = open("論語-原文.txt","w") for line in fi: #逐行遍歷 for i in range(1,23): #對產生1到22數字 line=line.replace("({})".format(i),"") #構造(i)並替換 fo.write(line) fi.close() fo.close()