資源簡介 第2單元 編程計算2.1計算機解決問題的過程1、算法簡單地說,算法就是解決問題的方法和步驟。“最強大腦”游戲問題的求解過程就代表著一種算法。其實,我們在日常生活中也經常使用算法。例如,我們到超市購物,首先確定要購買的物品,然后進行挑選、比較,最后到收銀臺結賬付款,這一系列活動流程與策略就 是所謂的算法。解決問題的過程,就是實現算法的過程。找到算法之后,不能只是自己心知肚明,還需要準確、具體地將它描述出來。要讓計算機解決問題,必須明確地告訴它要處理的具體對象和每一步的準確處理過程,否則計算機就無法工作。因此,對算法的描述要求盡可能精確、詳盡。描述算法可以有多種方法,比如可以使用自然語言或流程圖進行描述。2、使用自然語言描述算法自然語言是指人們日常生活中使用的語言,漢語、英語、德語等都是自然語言。用自然語言描述算法符合我們的表達習慣,并且容易理解。用自然語言描述算法,通常是我們理解算法的第一步3、使用流程圖描述算法流程圖也稱為程序框圖,它是算法的一種圖形化表示方法。與使用自然語言描述算法相比,用流程圖描述算法形象、直觀、更容易理解。對于一些復雜的算法,直接編寫代碼很困難,我們可以先用流程圖描述算法,然后根據流程圖寫出程序代碼。為了使算法的流程圖看起來更加直觀,需要對流程圖的表示方法進行規范,目前最常用的流程圖規范是由美國國家標準學會制定的一系列流程圖符號,如圖2.1.1所示。◆起止框:表示一個算法的開始和結束。◆輸人/輸出框:表示從外部輸人數據到計算機內部或者從計算機內部輸出數據到計算機外部。◆處理框:表示操作的內容。◆判斷框:表示判斷的條件。滿足條件,執行標識為“是”的路徑;不滿足條件,則執行標識為“否”的路徑。◆流程線:指向算法運行的方向。◆連接符:表示流程圖的接續。在相互聯系的流程圖內,流程線將在具有相同數字或字母的另一連接符處繼續下去。4、三種基本結構的流程圖算法的三種基本結構是順序結構、分支結構和循環結構。順序結構是一種最簡單的基本結構,按照自上而下的先后順序依次執行程序語句。在如圖2.1.2所示的順序結構示意圖中,先執行處理框A,再執行處理框B。分支結構也稱為選擇結構,是一種根據給定的條件進行判斷的結構。如圖2.1.2所示的分支結構中必定包括一個判斷框,若滿足條件則執行處理框A,若不滿足條件則執行處理框B。循環結構是一種重復某一部分操作的結構。如圖2.1.2所示的循環結構中,若滿足條件則執行循環體(處理框A),若不滿足條件則跳出循環,執行循環結構后面的代碼。5、Python語言的開發環境Python是一種程序開發工具。6、程序設計語言的發展除Python語言之外,還有很多其他程序設計語言。程序設計語言經歷了從機器語言、匯編語言到高級語言的發展過程。機器語言由二進制的0、1代碼指令構成,能被計算機直接識別。但理解和記憶機器語言非常困難,并且容易出錯,編程效率極低。匯編語言是符號化的機器語言,采用英文助記符代替機器指令,比機器語言容易識別和記憶,從而提高了程序的可讀性。但是匯編語言仍然是面向機器的語言,是為特定的計算機系統設計的,它要求軟件工程師對相應的機器硬件非常熟悉,因而匯編語言屬于低級語言。高級語言更接近自然語言,并不特指某一個種語言,也不依賴于特定的計算機系統,因而更容易掌握和使用,通用性也更好。比較流行的高級語言有Java、C/C++以及本書使用的Python等。用高級語言編寫的程序可讀性更強,也便于修改、維護。2.2 做出判斷的分支●常量在程序運行過程中值始終保持不變的量稱為常量。所有的常數都是常量●變量在程序運行過程中值允許改變的量稱為變量。計算機在處理數據時,首先要將數據調入內存單元,然后進行各種操作。變量是創建時在內存中開辟的一個存儲空間,變量名是內存中存放數據的存儲單元的標簽,存放的數據叫變量的值。在Python中,變量的命名需遵循以下幾條規則。◆必須以字母或下劃線開頭,后面可以是字母、數字或下劃線。◆區分大小寫。◆不能使用保留字。程序中的變量與數學中的變量含義略有不同。數學中的變量隱含著“未知”;在程序中,程序執行的每個瞬間,變量的值是確定的,但在程序執行的整個過程中,它的值是可以改變的。●運算符與表達式表達式由一個或多個操作數通過運算符組合而成。例如“2+3” 它由運算符“+”和操作數“2”“3”兩部分構成。運算符是進行某種運算的標識符號,它標明對操作數所進行的運算。常見的運算符如表2.2.1所示。●賦值語句賦值語句的基本格式如下:變量=表達式,功能是將右邊表達式的值賦值給左邊的變量。●輸入和輸出語句在Python中,使用“input()”從鍵盤輸人數據,使用“print()”在屏幕上輸出數據。如果有多個輸出項,可以使用“,”分隔。●數據類型為了便于數據的表示與處理,Python提供了整數、浮點數和字符串等常見的數據類型。下面給出一些函數,它們可以把數據從一種類型轉換為另一種類型。float():根據一個字符串或整數創建一個新的浮點數(小數)。int():根據一個字符串或浮點數創建一個新的整數。str():根據一個數(也可以是任何其他類型)創建一個新的字符串。●分支語句當程序中需要根據不同的條件判斷來決定程序執行的走向時,可以 使用if分支語句實現,其基本格式如下。2.3周而復始的循環1、列表列表在Python中的作用非常強大,它可以包含多個數據元素,同時它是一個有序的集合。下面通過一個簡單的例子來熟悉列表的使用方法。2、計數循環循環重復次數一定時,我們通常稱為計數循環。在Python中, 使用for語句來創建這類循環。for語句的基本格式如下通常我們將一組重復執行的語句稱為循環體。Python對循環體的定的格式是,循環體必須相對關鍵詞for有縮進。在for語句中,in后也可以是range()函數,它可以生成某個范圍內的數字列表。例如:range(1,6)就會生成[1,2,3,4,5]這樣一個列表,而range(8)會生成[0,1,2,3,4,5,6,7]這樣一個列表。3、條件循環條件循環一般用于循環次數未知的情況。只有當循環條件成立時,才執行循環體。在Python中,使用while語句來創建這類循環。while語句的基本格式如下。如:在本例中,循環體是兩條語句,因此這兩條語句相對于關鍵詞while均要縮進。程序執行過程是:變量s初值為0,判斷“s<=30”是否成立;如果成立則執行循環體( s值增加10,輸出s的值),不斷重復直到“s<=30”不成立,退出循環。在此我們需要特別關注語句“s=s+10。在編程時,形如“s=s+x”的語句可以起到累加的作用,如果x=1,即s=s+1可以起到計數的作用。一般在使用累加器或計數器時將變量賦初值為0。也有一類特殊的關系表達式,如數字0表示假,非0數字表示真。如果循環是以“while 1:”開頭,那么在不加干預的情況下,程序就會“不知疲倦”地一直執行下去。如果你想停止這個程序,按快捷鍵Ctrl+C即可。通常情況下,我們不會讓程序陷人這種“死循環”的境地。2.4可以復用的代碼1、函數函數可分為系統函數和用戶自定義函數兩種類型。系統函數即函數庫中的標準函數,是程序設計語言或操作系統提供給用戶的一系列已經編制好的程序。在前面單元使用過的print()和input()函數都是系統函數。前者用于將字符串按指定格式輸出到屏幕上;后者用于接收鍵盤的輸人,并存儲于相應變量中。用戶自定義函數則是用戶自己編寫的一段程序。函數一般包括函數名、參數、返回值和函數體等四部分。其中,函數名和函數體是必不可少的,參數和返回值可根據需要進行定義。定義函數的基本格式如下。參數是用來向函數傳遞值的,當有多個參數時,各個參數之間用逗號分隔開。函數執行完成后,由return語句將表達式值返回給調用者,結束函數。函數的調用采用函數名(參數)的方式。如: 用函數來求n!。上例中,程序執行時由于def塊中的代碼不是主程序的一部分, 因此會跳過該段代碼,從主程序的第一行total = factorial(4)開始運行。在遇到函數的調用語句factorial(4)時,轉到麗數中的第一行代碼開始執行。函數運行時,變量n會被賦值為4。函數執行完成返回變量s的值即24,然后回到語句total = factorial(4),將返回值賦給變量total,最后輸出。2、 發布代碼通過模塊發布代碼可以讓很多人受益于你的工作。如:有6根火柴棒,列出所有能擺出的自然數,要求火柴棒正好用完。火柴數字如圖所示。在D:創建一個文件夾mymodule, 其中包含mymodule.py和setup.py兩個文件。mymodule.py是一個模塊文件,其內容就是match_ num函數。mymodule.pysetup.py打開mymodule所在的目錄,構建發布文件。最后將發布文件安裝到你的Python本地副本中。安裝完成后,mymodule文件夾包含了如圖2.4.4所示的文件。如果你想讓全世界都分享你的成果,你可以在互聯網上發布你的代碼。3、導入模塊并使用已經構建發布的模塊必須先導人程序才能使用。導人時使用語句“import mymodule”, 調用模塊內的函數時用“mymodule.match_ num()”來實現。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫