1. 程式人生 > 其它 >零基礎學程式設計005:列印一行復利資料

零基礎學程式設計005:列印一行復利資料

問題

上次文章《整合開發環境IDE》裡留了一道練習題:

如何用Python列印這篇枯燥的《複利資料表》: (1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^ 3 = 1.03 ... ... (1+0.01) ^ 364 = 37.41 (1+0.01) ^ 365 = 37.78

怎樣解題

初學者完成這樣的任務還是相當有難度的,但不要緊,做練習的過程就是學習並理解程式設計思維的最有效手段。

記得有一位黑客推薦過《怎樣解題》這樣一本書,寫程式與解數學題有相似之處。遇到一個複雜的問題時,首先要將問題分解和簡化,然後逐步逼近最終的問題。以後在程式設計的過程中,還要學習演算法和資料結構都是為了掌握這些解題的思路和技巧。當了解的定式越來越多後,程式設計的思路就越開闊。

簡化

比如上面的問題,總共有365行資料,我們只需要會列印其中的一行,再按照這種思路列印其它364行即可。這裡隨便取一行,假設是第3行。現在的問題就變為:如何列印第3行?

(1+0.01) ^ 3 = 1.03

這樣問題是不是簡化了許多?

進一步將問題分解

(1)輸出等號左側內容

根據等號,可以拆為兩個部分,左邊就是一串普通的文字。在最早的《Hello World》裡就學過了,這裡複習一下:

print( "(1+0.01) ^ 3" )

注意這裡用的是Python 3的語法,在print後面必須有小括號,引號內的內容會原封不動地輸出。

(2)輸出等號右側內容

在《Hello World》這一篇文章裡介紹過計算2**10000,即2的1萬次方,而這裡我們只是計算1.01的3次方,簡單吧?程式碼就是這樣的:

print( 1.01**3 )

最後,把左側、等號、右側放在一起用print輸出,即:

print( "(1+0.01) ^ 3", "=", 1.01**3 )

初學者一定要在整合環境IDLE中把這行程式碼敲上一遍,因為標點符號也不能錯!執行的效果:

是不是與我們期望的結果已經很像了?只不過1.0303010000000001實在是太太太精確了,而我們只想顯示兩位小數1.03就夠用了。這個問題暫時超過了我們當前正在學習的內容,以後再說。

逼近最終的問題

我們現在已經能夠輸出第3行了,我們再照這樣把其它364行寫出來?思路是對的,但計算機擅長做重複的事,可以用迴圈語句來徹底解決這個問題。只需要加一行語句即可,而不用辛苦地抄上364遍。敬請關注以後的內容。

--- END ---