笨辦法學 Python · 續(xù) 練習 48:`ed`

練習 48:ed

原文:Exercise 48: ed

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

自豪地采用谷歌翻譯

如果你的流程生效了,那么你應該能夠專注于較長的項目,一次幾個星期歧譬。在這個項目中周拐,你的目標是創(chuàng)建盡可能精確的ed命令副本溺拱。這個練習的目標是不要有創(chuàng)意朵锣,而是要系統(tǒng)地實現另一個軟件的精確副本。將其看作一個偽造的練習炕置。你會做出一些非常好的東西,你可以用它代替原來的ed男韧,沒有人會知道朴摊。

這項工作是創(chuàng)建ed命令的“代碼大師副本”,盡可能準確此虑,也就是說甚纲,你的測試套件應該對真正的ed和你的版本運行同一腳本,來比較輸出朦前。這就像你在學習算法時所做的“代碼大師副本”練習介杆,除了你復制現有軟件的行為,而不是試圖記住它韭寸。這個流程是相似的春哨,但你可以使用測試套件幫助它更快地進行。

挑戰(zhàn)練習

ed工具恩伺,是現存的最早的 Unix 文本編輯器之一赴背,坦率地說,它非常糟糕。實際上我無法想像有人使用ed編輯文本凰荚,因為它是目前最受用戶討厭的軟件之一耸三。如果你無法想象,在 Unix 的黑暗時期浇揩,有多少計算機出了故障仪壮,制作一個ed的副本會讓你見識一下。

ed的一些概念是胳徽,雖然它支持腳本积锅,但它最初是以交互方式使用的。就像用于文本文件的 MUD养盗。你首先運行ed缚陷,它以命令模式啟動,讓你可以使用命令修改文本往核。當你執(zhí)行需要輸入的命令時箫爷,它將進入輸入模式,直到該命令結束聂儒。你也必須知道行的地址來編輯它虎锚。這似乎是一種痛苦,但與其他文字編輯器相比衩婚,這是獨角獸的魔法窜护。

為了完成你的ed副本,你需要嚴重依賴于 Python 的re非春,來使用正則表達式柱徙。我們在練習 31 中使用了這個庫,所以通常你應該熟悉它和 RegEx奇昙。

我還建議你护侮,在 45 分鐘的會話內,嘗試使用ed储耐,來你的ed項目編寫一些代碼羊初。這樣做的痛苦將會教你如何復制它。

除此之外弧岳,你將需要閱讀man ed頁面來獲取命令的基礎知識凳忙,并可能會觀看它的使用教程。一個很好的起步就是禽炬,在線尋找不同的示例腳本涧卵,并嘗試將它們作為你的第一個測試用例。

我會給你一個線索腹尖,你需要使用 FSM 來處理ed命令的模態(tài)本質柳恐。

研究性學習

  • 查找 GNU ed的源代碼,即使你不懂得 C 語言,也看一看它乐设。
  • 將你的ed實現變成一個模塊讼庇,然后可以在其他項目中使用。你需要將其用于以后的練習近尚。
  • 永遠不要再做這樣的軟件蠕啄,除非你就是無聊了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末戈锻,一起剝皮案震驚了整個濱河市歼跟,隨后出現的幾起案子,更是在濱河造成了極大的恐慌格遭,老刑警劉巖哈街,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異拒迅,居然都是意外死亡骚秦,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門璧微,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作箍,“玉大人,你說我怎么就攤上這事往毡∶纱В” “怎么了靶溜?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵开瞭,是天一觀的道長。 經常有香客問我罩息,道長嗤详,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任瓷炮,我火速辦了婚禮葱色,結果婚禮上,老公的妹妹穿的比我還像新娘娘香。我一直安慰自己苍狰,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布烘绽。 她就那樣靜靜地躺著淋昭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪安接。 梳的紋絲不亂的頭發(fā)上翔忽,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼歇式。 笑死驶悟,一個胖子當著我的面吹牛,可吹牛的內容都是我干的材失。 我是一名探鬼主播痕鳍,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼龙巨!你這毒婦竟也來了额获?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤恭应,失蹤者是張志新(化名)和其女友劉穎抄邀,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體昼榛,經...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡境肾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了胆屿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奥喻。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖非迹,靈堂內的尸體忽然破棺而出环鲤,到底是詐尸還是另有隱情,我是刑警寧澤憎兽,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布冷离,位于F島的核電站,受9級特大地震影響纯命,放射性物質發(fā)生泄漏西剥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一亿汞、第九天 我趴在偏房一處隱蔽的房頂上張望瞭空。 院中可真熱鬧,春花似錦疗我、人聲如沸咆畏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旧找。三九已至,卻和暖如春嚼摩,著一層夾襖步出監(jiān)牢的瞬間钦讳,已是汗流浹背矿瘦。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留愿卒,地道東北人缚去。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像琼开,于是被迫代替她去往敵國和親易结。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容