Python遊戲程式設計之旅(2):pygame中的IO、資料

發表於2016-07-22

本系列部落格介紹以python+pygame庫進行小遊戲的開發。有寫的不對之處還望各位海涵。

在上一篇中,我們介紹了pygame的入門操作

這次我們將一起學習pygame中的IO、資料和更多關於字型列印的知識。

一、python輸入輸出

1.輸出

python一次可以列印多個變數,只要用一個逗號將每個變數隔開就可以了。比如:

有些python內部系統的值我們也是可以列印出來的。比如:

2.獲取使用者的輸入:

我們可以使用input函式來完成從控制檯的輸入,這個函式的返回值是一個字串。

3.異常處理

一個錯誤的數值輸入也是可能導致程式崩潰的(當需要輸入數字進行計算的時候,使用者卻輸入了一個非數值的變數)。因此我們需要需要使用try…except語句塊來捕捉異常。

將感覺會有異常產生的程式碼放在try:語句塊裡面,如果產生異常的話,將會執行except:語句塊裡面的程式碼,程式並不會崩潰。

上面的那個程式,當你輸入了非法的資料以後,程式將會顯示(0, ‘*’, 0, ‘=’, 0)。

二、檔案輸入與輸出

1.操作文字檔案:

要在python裡面開啟一個檔案,可以使用open函式,第一個引數是檔名,第二個引數是開啟模式,下表展示了常見的開啟模式。

開啟模式 說明
“r” 以讀取的方式開啟檔案
“w” 以寫入的方式開啟檔案
“a” 以追加的方式開啟檔案
“r+” 以讀寫的方式開啟檔案
“w+” 以寫讀的方式開啟檔案
“a+” 以追加和讀取的方式開啟檔案

要把資料寫入到一個檔案,需要使用“w”屬性開啟檔案,然後使用file.write()函式寫入,另外還有writeline()函式,顧名思義,它是將單獨的一行寫入到檔案中,(還有一種寫多行的形式是file.writelines(),用來寫入一個字串列表)。對於需要儲存為單獨一行的文字,我們可以在文字末尾新增上一個換行符n。

如果要一次性將一個字串列表中的數行寫入到文字中可以這樣做:

從文字檔案讀取內容

要讀取一個檔案,我們必須先開啟它,程式碼和寫入的程式碼類似,只需要改變一下檔案模式:

當檔案開啟以後,就可以讀取其中的資料了,有多個函式可以完成這個功能,我們一一介紹一下。

每次讀取一個字元可以使用file.read(n),n是要讀取的字元的數目。

如果要把整個檔案讀取到一個字串變數中,可以使用下面的程式碼完成:

呼叫file.readlines()函式會建立一個列表,其中每一行都是列表,因此可以使用一個for迴圈將它列印出來:

String.strip()方法會刪去行末的換行字元。

2.操作二進位制檔案

二進位制檔案開啟模式:

開啟模式 說明
“rb” 以讀取的方式開啟二進位制檔案
“wb” 以寫入的方式開啟二進位制檔案
“ab” 以追加的方式開啟二進位制檔案
“rb+” 以讀取寫入的方式開啟二進位制檔案
“wb+” 以寫入讀取的方式開啟二進位制檔案
“ab+” 以追加和讀取的方式開啟二進位制檔案

開啟二進位制檔案方法和文字檔案類似。

1.寫入二進位制檔案:

將資料寫到二進位制檔案的時候需要使用struct.pack函式,它可以將資料打包,當讀取的時候使用的是struct.unpack。struct是python的一個模組,所以使用前需要先引入。

2.讀取二進位制檔案

學了io和資料以後,我們完全可以製作一個類似於回答問題闖關類的遊戲,將問題和答案都存在檔案中,然後在程式裡面載入它。答對就進行到下一題。

下一篇:pygame事件與裝置輪詢

相關文章