《Python程序设计》——1.2 程序开发周期
本節書摘來自華章計算機《Python程序設計》一書中的第1章,第1.2節,作者:[美]戴維 I.施奈德(David I. Schneider)著,更多章節內容可以訪問云棲社區“華章計算機”公眾號查看
1.2 程序開發周期
1.1節提過,硬件是指計算機系統中的機電設備(如顯示器、鍵盤和CPU等),軟件是指令的集合,也稱作程序,用其指揮硬件。程序用于在計算機上解決問題或者執行任務。程序員將問題解決方案或者任務翻譯成計算機能夠理解的一種語言。當我們寫程序時,我們必須牢記計算機只能做我們指示它做的事情。因此,在編寫指令時,我們必須非常小心和認真。
1.2.1 在計算機上執行任務
編寫指令執行任務的第一步是確定輸出是什么—也就是說,明確此任務應該產生什么。第二步是明確獲得輸出所需的數據或輸入。最后一步是確定如何處理輸入以獲得輸出—也就是說,確定使用什么公式或者做事的方法以獲得輸出。
此解決問題的方法與在代數課上解決現實世界問題所使用的方法相同。例如,考慮以下代數問題:
如果一輛汽車在2小時內行駛了50英里,它的速度是多少?
第一步是確定所需答案的類型。答案應該是一個以英里/每小時為單位的速度值(輸出)。獲取答案所需的信息是該車移動的距離和時間(輸入)。公式
速度 = 距離/時間
用于處理行駛的距離和所花費的時間,以確定速度。也就是說,
速度 = 50英里/2小時
該問題求解過程的圖示化表示如圖1-2所示。
我們將所希望獲得的作為輸出,然后獲取所需的輸入并且處理該輸入以產生所期望的輸出。
后續章節將討論如何編寫程序實現上述操作。但是首先我們看一下編寫程序的一般過程。
1.2.2 程序規劃
一個烘焙食譜提供了規劃的范例。原料和所需的數量由想要烘焙的東西所決定。也就是說,輸出決定輸入和處理。食譜或者方案,減少了你可能犯的錯誤。雖然很難想象一個建橋或者建工廠的建筑師會沒有一個詳細的計劃,但是許多程序員(特別是第一門編程課上的學生)試圖不事先制定一個細致的計劃就編寫程序。問題越復雜,計劃就應該越復雜。如果你精心設計出一個一步步的計劃并且在實際寫程序之前測試它,你將在程序上花少得多的時間。
許多程序員使用一系列步驟作為他們程序的計劃,稱作軟件開發生命周期。以下步驟將使你更有效地利用時間,并且幫助你設計能產生所期望輸出的、零錯誤的程序。
明確你理解程序應該做什么—也就是說,輸出應該是什么。對給定的數據(或輸入)以及輸入和期望輸出之間的關系做到心中有數。
找到解決問題的一系列精確的邏輯步驟。這一系列步驟稱作算法(algorithm)。包括明顯的步驟在內的每個細節都應出現在算法中。下一節將討論三個用于制定邏輯計劃的方法:流程圖、偽代碼和層次結構圖。這些工具幫助程序員將一個問題分解為計算機能執行的一系列小任務,從而解決問題。制定計劃也包含手工使用有代表性的數據來測試算法的邏輯性,以確定算法的正確性。
編碼(coding)是編寫程序的術語。在此步驟中,把使用Python編寫的程序輸入計算機中。程序員使用步驟2設計的算法以及Python的知識。
測試是找到程序中錯誤的過程。(程序中的錯誤稱作bug,測試和糾錯通常稱作調試。)隨著程序鍵入,Python會指出程序中的某些類錯誤。當程序執行的時候,Python會檢測出一些其他類型的錯誤—然而,許多錯誤,如輸入錯誤、算法的瑕疵或者Python語言規則的不正確使用等,并不能被發現,只能通過認真的檢測工作才能得到糾正。例如,本應使用乘號的地方使用了加號。
文檔的目的是讓其他人或者程序員將來能理解此程序。內部文檔(注釋)包括程序中不執行的語句,但是指出了程序各部分的目的。文檔也可能包括程序能做什么事情以及如何使用它的詳細描述(例如,所期望輸入的類型)。對于商用程序,文檔包括使用手冊和在線幫助。其他類型的文檔包括構建此程序的流程圖、偽代碼和層次結構圖等。雖然文檔被列為程序開發周期的最后一部分,但是它應該發生在程序編碼之際。
總結
以上是生活随笔為你收集整理的《Python程序设计》——1.2 程序开发周期的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 关于bootstrap的modal弹出层
- 下一篇: 续Gulp使用入门三步压缩CSS
