很多同學在學習了python最基本的一些語法,比如程式控制語句,各種資料容器之後,會有疑惑,這些究竟怎麼應用? 我們今天就以詩歌排版為例,看看最基本的python的知識,如何發揮巨大的威力!
方法是首先將文件內容讀入,此時是作為乙個字串來處理,使用for遍歷字串,並用print(),列印每個字元,如果字元的排位是14的倍數,則以句號和回車符結束,如果是7的倍數,則以逗號結束,其他的情況,末尾不新增字元,**如下(已經將python檔案和要處理的文字檔案置於同乙個資料夾中):
with open('和子由澠池懷舊.txt',encoding='utf8') as poem: cotent=poem.read() for i in range(len(cotent)): if (i+1) % 14 ==0: print(cotent[i],end='。\n') elif (i+1) % 7 ==0: print(cotent[i],end=',') else: print(cotent[i],end='')
其中i為詩中每個字元的下標,範圍為從0到55,i+1就是該字在詩中的排位,如果排位為14或7的倍數,就應用相應的結束標記。另外需要注意,文字的編碼需要使用utf8,這樣才能正確開啟,執行**,就得到了想要的結果。
可能有的同學會說,其實要達到上面的目標,在word中也不複雜,可如果我們的詩歌不是七律,而是「長恨歌」呢?
with open('長恨歌.txt',encoding='utf8') as poem: cotent=poem.read() for i in range(len(cotent)): if (i+1) % 14 ==0: print(cotent[i],end='。\n') elif (i+1) % 7 ==0: print(cotent[i],end=',') else: print(cotent[i],end='')
只需要將上述**中的檔名改為「長恨歌」就行了。執行的結果如下圖(內容太長,擷取片段):
回車符和換行符區別
首先介紹一下 回車 carriage return,r 和 換行 line feed,n 這兩個概念的來歷和區別。在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個...
回車符和換行符區別
在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。於是,研製人員想了個辦法解決這個問題,就是在每...
回車符和換行符區別
回車 carriage return,r 和 換行 line feed,n 這兩個概念的來歷在計算機還沒有出現之前,有一種叫做電傳打字機 teletype model 33 的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒...