題目要求是:請撰寫程式,提取《論語》檔案中所有原文內容,輸出保存到“論語-提取版.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()
求教大神,代碼中的四個for回圈中的內容是什么意思
尤其是 line = line.replace("*{}".format(i),"") 這里實在看不懂(我很慚愧)
uj5u.com熱心網友回復:
用正側不是很快嗎?!!!uj5u.com熱心網友回復:
哈哈 , 這思路好玩, 也是一種解決方法。原理的思路是 把 1.11 替換掉。 結果
第一個回圈, 把 1.11 換成 **1
所以還需要第2個回圈把 *1 替換為空。
同樣 11.1 第一個回圈 , 被替換 成 1**
還需要 第3個回圈, 把 1* 替換為空
最后再把 所有的 * 替換為空
此代碼作者寫完后說 : 編程真 XXX 累 !

此活建議按樓上的說的方法辦。 正則 是王道。
uj5u.com熱心網友回復:
給兩位大神跪了……感謝感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/126246.html
上一篇:lua,腳本問題
下一篇:圖中紅色圈起來是什么運算子
