1. 程式人生 > >PyQt5學習教程17:70行的貨幣轉換程式的程式設計思路

PyQt5學習教程17:70行的貨幣轉換程式的程式設計思路

這篇教程的分量比較重,而且難度比較大,如果感覺讀起來有困難,可以先放一放。本例程來源於《Python Qt GUI快速程式設計》,該書中第4章的“70行的貨幣轉換程式”,但是這個程式使用Python2和PyQt4編寫的,我們現在使用Python3和PyQt5,所以該程式不能直接執行,而且書中所指的網站連結已經不存在,本例程在其基礎上做了大幅度的改進與完善,程式碼量也不止70行。

先看一下,程式執行的介面,如下圖所示:第1行顯示能夠得到的最新匯率時間,第2行是可選擇的轉換貨幣,第3行是加元對該貨幣的匯率(本想直接找到人民幣的匯率檔案,但是還沒有在網上搜索到,以後找到再改進,現在只能用加元做一下中間轉換),第4行是加元對人民幣的匯率,第5行是計算出來的人民幣對該貨幣的匯率,第6行是欲轉換的人民幣數量,第7行是轉換後貨幣的數量,第8行用於顯示原始的資料和中間過程。


資料檔案是從網上搜索到的,網址為:

"http://www.bankofcanada.ca/valet/observations/FXCADAUD,FXCADBRL,FXCADCNY,FXCADEUR,FXCADHKD,FXCADINR,FXCADIDR,FXCADJPY,FXCADMYR,FXCADMXN,FXCADNZD,FXCADNOK,FXCADPEN,FXCADRUB,FXCADSAR,FXCADSGD,FXCADZAR,FXCADKRW,FXCADSEK,FXCADCHF,FXCADTWD,FXCADTHB,FXCADTRY,FXCADGBP,FXCADUSD,FXCADVND/csv"

將其下載到本地後,我們可以通過Excel視覺化的觀察該資料。

該資料主要分為2部分,第1部分,是轉換貨幣的標識縮寫和描述,如下圖所示。


第2部分是匯率資訊,我們需要通過列號進行查詢。


程式的整體思路是先根據第1部分的資訊建立2個字典,第1個字典儲存貨幣字典,第2個字典儲存貨幣描述。然後先讀取第2部分內容的第1行,將其轉換為列表,列表的索引號即為列號。接下來,再建立1個字典,按行處理後續的資料,如果該行有資料則覆蓋已經得到的字典中的資料,否則不執行,這樣就能夠得到最新的匯率資訊了。

由於程式量比較大,我們在下1篇教程中,再和大家探討程式的內容和具體的解釋。