Python電子教案1-2程序設(shè)計基本方法_第1頁
Python電子教案1-2程序設(shè)計基本方法_第2頁
Python電子教案1-2程序設(shè)計基本方法_第3頁
Python電子教案1-2程序設(shè)計基本方法_第4頁
Python電子教案1-2程序設(shè)計基本方法_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第1章 程序設(shè)計基本方法,Python開發(fā)環(huán)境配置,到Python主頁下載并安裝Python基本開發(fā)和運行環(huán)境,網(wǎng)址:/downloads/ 根據(jù)操作系統(tǒng)不同選擇不同版本 下載相應(yīng)的Python 3.0系列版本程序,安裝,安裝,安裝,方法1:啟動Windows命令行工具,輸入python,啟動,方法2:調(diào)用IDLE來啟動Python圖形化運行環(huán)境,啟動,方法3:按照語法格式編寫代碼,編寫可以用任何文本編輯器,保存為文件。,啟動,方法4:打開IDLE,點擊Ctrl+N打開一個新窗口,輸入語句并保存,使用快鍵建F5即可運行該程序,啟動,方法5:將Python集成到Ecl

2、ipse、PyCharm等面向較大規(guī)模項目開發(fā)的集成開發(fā)環(huán)境中,啟動,采用上述某個方法,執(zhí)行:,Hello程序,Hello程序只有一行代碼,實在太小。本節(jié)給出5個5行代碼左右的Python小程序(稱為“微實例”),在IDLE交互式和批量式兩種方式下練習。這5個微實例分別給出了交互式執(zhí)行過程和文件式內(nèi)容(即全部程序內(nèi)容)。 在編輯器中輸入代碼時,#及以后的文字不影響程序執(zhí)行,可以不用輸入。#后面的文字是注釋,僅用來幫助讀者理解程序。,運行Python小程序,微實例1.1:圓面積的計算 交互式執(zhí)行過程如下,運行Python小程序,微實例1.1的文件式內(nèi)容如下,運行Python小程序,微實例1.2:

3、簡單的人名對話,運行Python小程序,斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,由意大利數(shù)學家Leonardo Fibonacci于1202年提出,并以其名字命名。該數(shù)列F(n)定義如下:F(0)=0, F(1)=1,F(xiàn)(n)=F(n-2)+F(n-1),其中n=2。簡單說,斐波那契數(shù)列中每個數(shù)是前兩個數(shù)之和。斐波那契數(shù)列中鄰近兩個數(shù)的比值接近于黃金分割數(shù),即F(n)/F(n-1)接近1.618,這個比例的極限值就是黃金分割數(shù)。,斐波那契數(shù)列,微實例1.3:斐波那契數(shù)列,運行Python小程序,微實例1.4:同切圓的繪制,運行Python小程序,微實例1.5:日

4、期和時間的輸出,運行Python小程序,程序的基本編寫方法,每個計算機程序都用來解決特定計算問題,較大規(guī)模的程序提供豐富功能解決完整計算問題。例如:控制航天飛機運行的程序、操作系統(tǒng)等。小型程序或程序片段可以為其他程序提供特定計算支持,作為解決更大計算問題的組成部分。 無論程序規(guī)模如何,每個程序都有統(tǒng)一的運算模式:輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)。這種樸素運算模式形成了程序的基本編寫方法:IPO(Input, Process, Output)方法。,IPO程序編寫方法,輸入數(shù)據(jù) 處理數(shù)據(jù) 輸出數(shù)據(jù),IPO程序編寫方法,輸入數(shù)據(jù) 輸入(Input)是一個程序的開始。程序要處理的數(shù)據(jù)有多種來源,形成了多

5、種輸入方式,包括:文件輸入、網(wǎng)絡(luò)輸入、控制臺輸入、交互界面輸出、隨機數(shù)據(jù)輸入、內(nèi)部參數(shù)輸入等。,IPO程序編寫方法,文件輸入將文件作為程序輸入來源,在獲得文件控制權(quán)后,需要根據(jù)文件格式解析內(nèi)部具體數(shù)據(jù)。例如統(tǒng)計excel文件數(shù)據(jù)的數(shù)量,需要首先獲得excel文件的控制權(quán),打開文件后根據(jù)excel中數(shù)據(jù)存儲方式獲得所需處理的數(shù)據(jù),進而開展計算 網(wǎng)絡(luò)輸入將互聯(lián)網(wǎng)上的數(shù)據(jù)作為輸入來源。使用網(wǎng)絡(luò)數(shù)據(jù)需要明確網(wǎng)絡(luò)協(xié)議和使用特定的網(wǎng)絡(luò)接口。例如,捕獲并處理互聯(lián)網(wǎng)上的數(shù)據(jù),需要使用HTTP協(xié)議并解析HTML格式,IPO程序編寫方法,控制臺輸入將程序使用者輸入的信息作為輸入來源。當程序與用戶間存在交互時,程序

6、需要有明確的用戶提示,輔助用戶正確輸入數(shù)據(jù)。從程序語法上來說,這種提示不是必須的,但良好的提示設(shè)計有助于提高用戶體驗。 交互界面輸入通過提供一個圖形交互界面從用戶處獲得輸入來源。此時,鼠標移動或點擊操作、文本框內(nèi)的鍵盤操作等都為程序提供事件和數(shù)據(jù)輸入。,IPO程序編寫方法,隨機數(shù)據(jù)輸入將隨機數(shù)作為程序輸入,這需要使用特定的隨機數(shù)發(fā)成器程序或調(diào)用相關(guān)函數(shù)。4.5節(jié)將詳細介紹產(chǎn)生隨機數(shù)的方法。 內(nèi)部參數(shù)輸入以程序內(nèi)部定義的初始化變量作為輸入,盡管程序看似沒有從外部獲得輸入,但程序執(zhí)行之前的初始化過程為程序賦予了執(zhí)行所需的數(shù)據(jù)。,IPO程序編寫方法,控制臺輸入將程序使用者輸入的信息作為輸入來源。當程

7、序與用戶間存在交互時,程序需要有明確的用戶提示,輔助用戶正確輸入數(shù)據(jù)。從程序語法上來說,這種提示不是必須的,但良好的提示設(shè)計有助于提高用戶體驗。 交互界面輸入通過提供一個圖形交互界面從用戶處獲得輸入來源。此時,鼠標移動或點擊操作、文本框內(nèi)的鍵盤操作等都為程序提供事件和數(shù)據(jù)輸入。,IPO程序編寫方法,輸出數(shù)據(jù) 輸出(Output)是程序展示運算成果的方式。程序的輸出方式包括:控制臺輸出、圖形輸出、文件輸出、網(wǎng)絡(luò)輸出、操作系統(tǒng)內(nèi)部變量輸出等。,IPO程序編寫方法,控制臺輸出以計算機屏幕為輸出目標,通過程序運行環(huán)境中的命令行打印輸出結(jié)果。這里“控制臺”可以理解為啟動程序的環(huán)境,例如,Windows中

8、的命令行工具、IDLE工具等。 圖形輸出在計算機中啟動獨立的圖形輸出窗口,根據(jù)指令繪制運算結(jié)果。,IPO程序編寫方法,文件輸出以生成新的文件或修改已有文件方式輸出運行結(jié)果,這是程序常用的輸出方式。7.1節(jié)將具體介紹文件的使用。 網(wǎng)絡(luò)輸出以訪問網(wǎng)絡(luò)接口方式輸出數(shù)據(jù)。第12章將介紹自動向搜索引擎提交關(guān)鍵詞查詢的實例。 操作系統(tǒng)內(nèi)部變量輸出指程序?qū)⑦\行結(jié)果輸出到系統(tǒng)內(nèi)部變量中,這類變量包括管道、線程、信號量等。,IPO程序編寫方法,處理數(shù)據(jù) 處理(Process)是程序?qū)斎霐?shù)據(jù)進行計算產(chǎn)生輸出結(jié)果的過程。計算問題的處理方法統(tǒng)稱為“算法”,它是程序最重要的組成部分??梢哉f,算法是一個程序的靈魂。,I

9、PO程序編寫方法,是否存在沒有輸入輸出的程序呢? 存在,例如,無限循環(huán),代碼如下。 while(True): a = 1,IPO程序編寫方法,這個無限循環(huán)程序包含兩行語句 其中,while()根據(jù)括號內(nèi)部值的真假決定是否進入循環(huán),當括號內(nèi)值為真時,進入第2行語句執(zhí)行,否則跳過。由于括號內(nèi)值被設(shè)定為True(即“真”),代碼將一直執(zhí)行下去。 無限循環(huán)程序盡管沒有輸入也沒有輸出,它也有價值。通過不間斷執(zhí)行,該程序快速消耗CPU的計算資源,可以用來輔助測試CPU或系統(tǒng)性能。,IPO程序編寫方法,IPO不僅是程序設(shè)計的基本方法,也是描述計算問題的方式。以微實例1.1圓面積的計算為例,其IPO描述如下:

10、 輸入:圓半徑raduis 處理:計算圓面積area = * radius * radius 輸出:圓面積area,微實例1.1圓面積的計算,可以看到,問題的IPO描述實際上是對一個計算問題輸入、輸出和求解方式的自然語言描述,為了區(qū)別其他描述方式,本書中所有IPO描述都包括“輸入”、“處理”和“輸出”三個引導(dǎo)詞。 IPO描述能夠幫助初學程序設(shè)計的讀者理解程序設(shè)計的開始過程,即了解程序的運算模式,進而建立設(shè)計程序的基本概念。,微實例1.1圓面積的計算,分析問題分析問題的計算部分 劃分邊界劃分問題的功能邊界 設(shè)計算法設(shè)計問題的求解算法 編寫程序,編寫問題的計算程序 調(diào)試測試,調(diào)試和測試程序 升級維

11、護,適應(yīng)問題的升級維護,理解問題的計算部分,人工智能(Artificial Intelligence),簡稱AI,計算機科學的一個分支,區(qū)別于人類智能,人工智能指由機器或軟件所體現(xiàn)的智能 圖靈測試中,機器和人分別通過文本途徑(避免計算機理解語言能力不足的影響)回答一組獨立評判人提出的問題,如果評判人無法從回答中區(qū)分機器和人,則認為機器通過測試,具備與人相當?shù)闹悄堋D靈測試并不評判問題答案的正確性,而是通過評判答案之間的相似性確定機器是否具備智能。,人工智能和圖靈測試,Python語言版本更迭,更高級別的3.0系列不兼容早期2.0系列 2008年至今,版本更迭帶來大量庫函數(shù)的升級替換,Pytho

12、n語言的版本更迭痛苦且漫長 到今天,Python 3.x系列已經(jīng)成為主流,Python語言的版本更迭,兩個版本的語法區(qū)別: 修改編碼:3.x系列默認采用UTF-8編碼,因此處理中文與英文一樣方便。因此,在表達UTF-8編碼字符串時,不需要在前面增加u或者U 修改print語句:用print()函數(shù)替換了print語句,兩者功能一樣,格式不同 修改exec語句:用exec()函數(shù)替換了exec語句,兩者功能一樣,格式不同。,Python語言的版本更迭,去掉符號:用!=表示“不等于”。 修改比較行為:用=, 符號比較兩個元素時,如果元素之間不存在有意義的順序關(guān)系,將拋出TypeError錯誤,不再

13、返回False。因此,這類元素之間的排序也將拋出錯誤。 去掉長整數(shù)類型:3.x系列不再區(qū)分整數(shù)和長整數(shù)類型,只有一個int類型,int類型無取值范圍限制。因此,sys.maxint常量被去掉。,本章小結(jié),修改整數(shù)除法:兩個整數(shù)的一般除法(/)返回一個浮點數(shù),不再返回一個整數(shù),如果想返回整數(shù),用整數(shù)除法(/) 修改八進制整數(shù)格式:使用0o開頭,而不再使用0開頭,例如:0o237,而不是0237。 增加關(guān)鍵字:增加as、with、True、False、None為關(guān)鍵字。 去掉raw_input()函數(shù):用input()替代raw_input(),input()返回一個字符串。,本章小結(jié),修改range()函數(shù):range()功能與2.x系列中xrange()類似,不再顯式返回一個列表。如果希望返回列表,需要通過list()函數(shù)轉(zhuǎn)換。 修改返回類型:除range()外,zip()、map()、filter()、字典類型的key()方法、value()方法、item()方法不再返回列表類型。 修改異常處理表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論