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

下載本文檔

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

文檔簡介

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

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

3、on小程序 斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,由意大利數(shù)學(xué)家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ù)列運(yùn)行Python小程序 微實例1.4:同切圓的繪制運(yùn)行Python小程序 微實例1.5:日期和時間的輸出運(yùn)行Python小程

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

5、臺輸入、交互界面輸出、隨機(jī)數(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ù),進(jìn)而開展計算網(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程序編寫方法 控制臺輸入將程序使用者輸入的信息作為輸入來源。當(dāng)程序與用戶間存在交互時,程序需要有明確的用戶提示,輔助用戶正確輸入數(shù)據(jù)。從程序

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

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

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

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

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

11、簡稱AI,計算機(jī)科學(xué)的一個分支,區(qū)別于人類智能,人工智能指由機(jī)器或軟件所體現(xiàn)的智能 圖靈測試中,機(jī)器和人分別通過文本途徑(避免計算機(jī)理解語言能力不足的影響)回答一組獨(dú)立評判人提出的問題,如果評判人無法從回答中區(qū)分機(jī)器和人,則認(rèn)為機(jī)器通過測試,具備與人相當(dāng)?shù)闹悄?。圖靈測試并不評判問題答案的正確性,而是通過評判答案之間的相似性確定機(jī)器是否具備智能。人工智能和圖靈測試Python語言版本更迭 更高級別的3.0系列不兼容早期2.0系列 2008年至今,版本更迭帶來大量庫函數(shù)的升級替換,Python語言的版本更迭痛苦且漫長 到今天,Python 3.x系列已經(jīng)成為主流Python語言的版本更迭兩個版本的

12、語法區(qū)別: 修改編碼:3.x系列默認(rèn)采用UTF-8編碼,因此處理中文與英文一樣方便。因此,在表達(dá)UTF-8編碼字符串時,不需要在前面增加u或者U 修改print語句:用print()函數(shù)替換了print語句,兩者功能一樣,格式不同 修改exec語句:用exec()函數(shù)替換了exec語句,兩者功能一樣,格式不同。Python語言的版本更迭 去掉符號:用!=表示“不等于”。 修改比較行為:用, =, 符號比較兩個元素時,如果元素之間不存在有意義的順序關(guān)系,將拋出TypeError錯誤,不再返回False。因此,這類元素之間的排序也將拋出錯誤。 去掉長整數(shù)類型:3.x系列不再區(qū)分整數(shù)和長整數(shù)類型,只

13、有一個int類型,int類型無取值范圍限制。因此,sys.maxint常量被去掉。本章小結(jié) 修改整數(shù)除法:兩個整數(shù)的一般除法(/)返回一個浮點(diǎn)數(shù),不再返回一個整數(shù),如果想返回整數(shù),用整數(shù)除法(/) 修改八進(jìn)制整數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論