Python程序設(shè)計-鐵道出版社_第1頁
Python程序設(shè)計-鐵道出版社_第2頁
Python程序設(shè)計-鐵道出版社_第3頁
Python程序設(shè)計-鐵道出版社_第4頁
Python程序設(shè)計-鐵道出版社_第5頁
已閱讀5頁,還剩241頁未讀 繼續(xù)免費閱讀

付費閱讀全文

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

文檔簡介

Python程序設(shè)計

全國高等院校新工科數(shù)據(jù)科學(xué)與大數(shù)據(jù)系列規(guī)劃教材

Python程序設(shè)計

甘勇吳懷廣◎編著

內(nèi)容簡介

本書以“計算思維”培養(yǎng)為目標,貫穿理解和運用Python的計算生態(tài)環(huán)境,系統(tǒng)展示了

Python語言學(xué)習(xí)路徑。本書分為12章:第1章講解Python基礎(chǔ)知識與概念,以及Python的交

互式解釋器IDLE;第2章講解Python語言語法基礎(chǔ);第3章講解Python控制語句;第4章講

解Python數(shù)據(jù)結(jié)構(gòu);第5章講解Python函數(shù);第6章講解Python模塊和包;第7章講解文件

操作;第8章講解面向?qū)ο缶幊?;?章講解異常;第10章講解Python函數(shù)式編程;第11章

講解數(shù)據(jù)分析與可視化;第12章講解機器學(xué)習(xí)實戰(zhàn)。

本書內(nèi)容覆蓋了Python語言的大部分知識點,敘述清晰,循序漸進,以大量實例為依托,

提供大量學(xué)習(xí)資料、學(xué)習(xí)視頻、在線實驗環(huán)境、立體化教學(xué)資源。本書適合作為高等院校數(shù)據(jù)

科學(xué)與大數(shù)據(jù)及計算機相關(guān)專業(yè)的教材,也可作為對Python感興趣讀者的自學(xué)參考書。

圖書在版編目(CIP)數(shù)據(jù)

Python程序設(shè)計/甘勇,吳懷廣主編.—北京:中國鐵道

出版社有限公司,2019.11(2021.1重?。?/p>

全國高等院校新工科數(shù)據(jù)科學(xué)與大數(shù)據(jù)系列規(guī)劃教材

ISBN978-7-113-26312-6

Ⅰ.①P…Ⅱ.①甘…②吳…Ⅲ.①軟件工具-程序設(shè)計-高等

學(xué)校-教材Ⅳ.①TP311.561

本書通過四川一覽文化傳播廣告有限公司代理,經(jīng)福地出版社授權(quán)出版中文簡體字版

中國版本圖書館CIP數(shù)據(jù)核字(2019)第242417號

書名:Python程序設(shè)計

作者:甘勇吳懷廣

策劃:韓從付周海燕編輯部電話:(010)51873202

責(zé)任編輯:周海燕賈星馮彩茹

封面設(shè)計:崔麗芳

責(zé)任校對:張玉華

責(zé)任印制:樊啟鵬

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)址:/51eds/

印刷:三河市航遠印刷有限公司

版次:2019年11月第1版2021年1月第2次印刷

開本:787mm×1092mm1/16印張:15.25字數(shù):294千

書號:ISBN978-7-113-26312-6

定價:46.00元

版權(quán)所有侵權(quán)必究

凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836

打擊盜版舉報電話:(010)63549461

FOREWORD

隨著信息技術(shù)的不斷發(fā)展,人類在計算的“算力”“算法”“數(shù)據(jù)”等方面的能

力水平達到前所未有的高度。由此引發(fā)的數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)及人工智能技術(shù)浪潮

將極大地推動和加速人類社會各個方面的深刻變革。世界各國清楚地認識到數(shù)據(jù)科學(xué)

與人工智能的重要性和前瞻性,相繼制定有關(guān)的發(fā)展政策、戰(zhàn)略,希望能夠占領(lǐng)高新

技術(shù)的前沿高地,把握最新的核心技術(shù)和競爭力。

在大數(shù)據(jù)及人工智能發(fā)展浪潮中,我國敏銳地把握住時代的機遇以求得到突破性

的發(fā)展。2015年10月,我國提出“國家大數(shù)據(jù)戰(zhàn)略”,發(fā)布了《促進大數(shù)據(jù)發(fā)展行

動綱要》;2017年,《大數(shù)據(jù)產(chǎn)業(yè)發(fā)展規(guī)劃(2016—2020年)》實施?!巴苿踊ヂ?lián)網(wǎng)、

大數(shù)據(jù)、人工智能和實體經(jīng)濟深度融合”成為工作指引,習(xí)近平總書記在政治局集體

學(xué)習(xí)中深刻分析了我國大數(shù)據(jù)發(fā)展的現(xiàn)狀和趨勢,對我國實施國家大數(shù)據(jù)戰(zhàn)略提出了

更高的要求。2016年教育部批準設(shè)立數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)本科專業(yè)和大數(shù)據(jù)技術(shù)與

應(yīng)用專科專業(yè),引導(dǎo)高校加快大數(shù)據(jù)人才培養(yǎng),以適應(yīng)國家大數(shù)據(jù)戰(zhàn)略對人才的需求。

我國大數(shù)據(jù)人才培養(yǎng)進入快速發(fā)展時期,據(jù)統(tǒng)計,到2018年3月,我國已有近300所

高校獲批建設(shè)“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè),2019年9月,設(shè)立這一專業(yè)的高校將

增至500所。僅河南省設(shè)立“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè)的本科高校達到36所,設(shè)

立“大數(shù)據(jù)技術(shù)與應(yīng)用”專業(yè)的高職高專院校達到38所。然而,當(dāng)前我國高校的大數(shù)

據(jù)教學(xué)尚處于摸索階段,尤其缺乏成熟的、系統(tǒng)性和規(guī)范性的大數(shù)據(jù)教學(xué)體系和教材。

2017年2月,教育部在復(fù)旦大學(xué)召開“高等工程教育發(fā)展戰(zhàn)略研討會”達成“復(fù)旦共

識”,隨后從“天大行動”到“北京指南”,掀起新工科建設(shè)的熱潮,各高校積極開

展新理念、新結(jié)構(gòu)、新模式、新質(zhì)量和新體系的新工科建設(shè)模式的探索。2018年10月,

教育部發(fā)布了《關(guān)于加快建設(shè)發(fā)展新工科實施卓越工程師教育培養(yǎng)計劃2.0的意見》,

提出大力發(fā)展“四個新”(新工科、新醫(yī)科、新農(nóng)科、新文科),推動各地各高校加

快構(gòu)建大數(shù)據(jù)、智能制造、機器人等10個新興領(lǐng)域的專業(yè)課程體系。為了落實國家戰(zhàn)

略、加快大數(shù)據(jù)新工科專業(yè)建設(shè),加速人才培養(yǎng),提供人才支撐,都需要更多地關(guān)注

數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)及人工智能相關(guān)專業(yè)教材的建設(shè)和出版工作。為此河南省高等

學(xué)校計算機教育研究會組織河南省高校與中國鐵道出版社有限公司、中國科學(xué)院計算

技術(shù)研究所和相關(guān)企業(yè)聯(lián)合成立了編委會,分別面向本科和高職高專編寫教材。

本編委會秉承虛心求教、博采眾長的學(xué)習(xí)態(tài)度,積極組織一線教師、科研人員和

企業(yè)工程師一起面向新工科開展大數(shù)據(jù)領(lǐng)域教材的編寫工作,以期為蓬勃發(fā)展的數(shù)據(jù)

科學(xué)與大數(shù)據(jù)專業(yè)建設(shè)貢獻我們的綿薄之力。毋庸諱言,由于編委自身水平有限,編

著過程中難免出現(xiàn)諸多疏漏與不妥之處,還望讀者不吝賜教!

編委會

2019年6月

前???言

PREFACE

人類的語言,無論漢語、英語、西班牙語還是法語,其作用都是傳遞信息。而

計算機程序設(shè)計語言和人類語言一樣,也是為了信息的傳遞,只是溝通的對象變成

了機器。通過計算機程序設(shè)計語言,計算機可以“聽懂”并按照代碼的要求執(zhí)行任

務(wù)。我們都知道底層的計算機指令是由0和1組成的,如果人類嘗試用一串串的0

和1與計算機溝通,那難度也太大了,所以由0和1的指令串就逐步抽象為低級語

言,然后再到高級語言。越低級的語言越接近機器語言,越高級的語言越接近人類

語言。Python就是一種高級編程語言。

隨著人工智能的迅速發(fā)展,Python語言得到了越來越廣泛的普及和應(yīng)用。

TIOBE2019年1月發(fā)布的排行榜顯示,Python獲得2018年TIOBE最佳年度語言

稱號,這是Python第三次獲得TIOBE最佳年度語言排名,也是獲獎次數(shù)最多的編

程語言。Python簡單易用,語法簡潔清晰,代碼優(yōu)雅易讀。與C語言系列和Java

語言等相比,大幅度降低了學(xué)習(xí)和使用的難度。Python語言支持命令式編程、面

向?qū)ο蟪绦蛟O(shè)計、函數(shù)式編程,包含了完善的標準函數(shù)庫,并具備非常豐富的擴展

庫,能滿足幾乎所有領(lǐng)域的應(yīng)用。在這些庫的支撐下,很多復(fù)雜的任務(wù)只需要幾行

代碼就可以完成,大大降低了開發(fā)難度。

本書借鑒了大量已出版的Python語言程序設(shè)計圖書,覆蓋了Python語言大部

分知識點,從基本的程序設(shè)計思想入手,用大量實例來加深讀者的理解。本書配套

有《Python程序設(shè)計實踐教程》和在線實驗開發(fā)環(huán)境,通過便捷的實操練習(xí)和大

量的案例操作讓讀者快速掌握Python編程語言的使用方法。

本書由鄭州輕工業(yè)大學(xué)甘勇、吳懷廣編著,金松河、張靜、張偉偉、王捷、

王曉參與編寫,其中第1、2章由金松河、吳懷廣編寫,第3、4、5章由張靜編寫,

第6、7、10章由張偉偉編寫,第8、9章由王捷、甘勇編寫,第11、12章由王曉、

甘勇編寫,最后,由吳懷廣對全書進行了統(tǒng)稿和定稿。

本書的適用讀者對象如下(但不限于):

(1)計算機、人工智能、數(shù)據(jù)科學(xué)與大數(shù)據(jù)專業(yè)本科生。建議講授全部章節(jié),學(xué)

時為64學(xué)時。若已學(xué)習(xí)過C語言,則1~3章可作為前期自學(xué)內(nèi)容,講授學(xué)時可

縮短為48學(xué)時。

(2)數(shù)字媒體技術(shù)、軟件工程、網(wǎng)絡(luò)工程、信息安全、自動化及其他工科專

業(yè)的本科生。建議講授1~9章,根據(jù)需要選講10~12章,學(xué)時為48學(xué)時。

(3)會計、金融、管控學(xué)、心理學(xué)、統(tǒng)計及其他非工科類專業(yè)本科生。建議

講授1~7章,其余章節(jié)根據(jù)需要選講,學(xué)時為32~48學(xué)時。

(4)非計算機相關(guān)專業(yè)本科生。本書可作為公共基礎(chǔ)課程的程序設(shè)計教材。

建議講授1~5章,其余章節(jié)根據(jù)需要選講,學(xué)習(xí)為32~48學(xué)時。

本書提供全套教學(xué)課件、源代碼、課后習(xí)題答案與分析、考試題庫以及教學(xué)大綱,

配套資料可以在網(wǎng)址/51eds/下載或與責(zé)任編輯聯(lián)系索取。

限于水平,書中不足之處在所難免,敬請讀者和同行批評指正。

編者

2019年8月

編者

2019年6月

目錄

CONTENTS

第1章初識Python/1第2章Python語法基礎(chǔ)/25

1.1Python的起源/12.1Python語法特點/26

1.2Python的發(fā)展/22.1.1縮進分層/26

1.3Python的特點/32.1.2注釋規(guī)則/27

1.4Python的應(yīng)用/52.1.3語句換行/27

1.5搭建Python開發(fā)環(huán)境/62.1.4同一行寫多個語句/28

1.5.1在Windows平臺搭建2.1.5模塊/28

Python開發(fā)環(huán)境/62.2標準輸入/輸出/28

1.5.2在Mac平臺搭建Python開發(fā)2.2.1標準輸入函數(shù)/29

環(huán)境/102.2.2標準輸出函數(shù)/29

1.5.3在Linux平臺搭建Python開2.3變量和常量/30

發(fā)環(huán)境/102.4標識符與關(guān)鍵字/32

1.6Python開發(fā)環(huán)境IDLE簡介/112.5簡單數(shù)據(jù)類型/33

1.6.1啟動IDLE/112.5.1數(shù)字類型/33

1.6.2利用IDLE創(chuàng)建Python程序/122.5.2字符串類型/35

1.6.3運行Python程序/142.6類型轉(zhuǎn)換/39

1.6.4調(diào)試Python程序/152.7運算符與表達式/40

1.6.5常用PythonIDE介紹/212.7.1算術(shù)運算符/40

1.7使用幫助/222.7.2比較運算符/41

1.7.1使用在線幫助文檔/222.7.3邏輯運算符/43

1.7.2使用help()函數(shù)/222.7.4賦值運算符/43

小結(jié)/242.7.5位運算符/45

習(xí)題/242.7.6成員運算符/47

.I

Python程序設(shè)計

2.7.7標識運算符/484.3序列及通用操作/75

2.8運算符優(yōu)先級/494.3.1切片操作/75

小結(jié)/504.3.2連接和復(fù)制/77

習(xí)題/504.3.3成員檢查/78

第3章Python控制語句/514.3.4內(nèi)置函數(shù)/79

4.3.5元組、列表和字符串的相互

3.1選擇語句/51

轉(zhuǎn)換/79

3.1.1簡單if語句/51

4.4字典/80

3.1.2if-else語句/52

4.4.1字典的創(chuàng)建與賦值/80

3.1.3if-elif-else語句/53

4.4.2字典的基本操作/83

3.1.4if嵌套語句/55

4.4.3字典的相關(guān)方法/84

3.2循環(huán)語句/56

4.5集合/88

3.2.1for循環(huán)/56

4.5.1集合的創(chuàng)建和賦值/89

3.2.2for循環(huán)嵌套/58

4.5.2集合的基本操作/90

3.2.3while循環(huán)/58

4.5.3集合的運算/93

3.2.4while循環(huán)嵌套/59

4.6綜合案例/97

3.3跳轉(zhuǎn)語句/60

小結(jié)/99

3.3.1break語句/60

習(xí)題/99

3.3.2continue語句/61

3.3.3pass語句/62第5章Python函數(shù)/101

3.3.4else語句/625.1函數(shù)的定義與調(diào)用/101

小結(jié)/635.1.1函數(shù)的定義/101

習(xí)題/635.1.2函數(shù)的調(diào)用/102

第4章Python數(shù)據(jù)結(jié)構(gòu)/645.2函數(shù)返回值/102

5.3函數(shù)參數(shù)/104

4.1列表/64

5.3.1必須參數(shù)/104

4.1.1列表的創(chuàng)建/64

5.3.2默認參數(shù)/104

4.1.2列表的基本操作/66

5.3.3關(guān)鍵字參數(shù)/105

4.1.3列表的相關(guān)方法/68

5.3.4可變參數(shù)/105

4.2元組/72

5.4變量作用域/106

4.2.1元組的創(chuàng)建/72

5.4.1局部變量/106

4.2.2元組的基本操作/73

5.4.2全局變量/107

4.2.3元組的相關(guān)方法/74

5.5遞歸函數(shù)/108

II.

目錄

5.6綜合案例/1088.2類和對象/146

小結(jié)/1108.2.1類的定義/146

習(xí)題/1108.2.2創(chuàng)建對象/146

第6章Python模塊和包/1118.2.3self參數(shù)/147

6.1Python模塊/1128.2.4初始化方法/148

6.1.1模塊概述/1128.2.5析構(gòu)方法/150

6.1.2模塊的導(dǎo)入方式/1138.3類成員與實例成員/151

6.1.3模塊的內(nèi)建屬性和內(nèi)建函數(shù)/1138.3.1類屬性和實例屬性/151

6.1.4模塊的搜索路徑/1168.3.2類方法和靜態(tài)方法/153

6.2包/1178.4私有屬性和私有方法/155

6.2.1包的結(jié)構(gòu)/1178.5繼承/156

6.2.2包的初始化/1198.5.1單一繼承/157

6.2.3包的導(dǎo)入/1198.5.2多重繼承/160

6.3標準庫和第三方庫/1228.6多態(tài)/161

6.3.1Python標準庫簡介/122小結(jié)/164

6.3.2第三方庫/123習(xí)題/164

6.3.3第三方庫的安裝/126第9章異常/165

小結(jié)/1279.1異常概述/165

習(xí)題/1279.2捕獲異常/168

第7章文件操作/1289.2.1簡單的異常捕獲/169

7.1文件的打開與關(guān)閉/1299.2.2捕獲多種類型的異常/169

7.2文件的讀取/1349.2.3完整的異常捕獲語句/170

7.3文件的寫入/1369.3異常拋出/172

7.4OS模塊操作文件和目錄/1379.4else語句/173

小結(jié)/1409.5with語句/173

習(xí)題/141小結(jié)/174

習(xí)題/174

第8章面向?qū)ο缶幊?142

第10章Python函數(shù)式編程/175

8.1面向?qū)ο蟪绦蛟O(shè)計思想/143

8.1.1面向過程思想和面向?qū)ο笏枷?14310.1函數(shù)式編程概述/175

8.1.2面向?qū)ο蠓椒ǖ奶卣?14310.2匿名函數(shù)/176

.III

Python程序設(shè)計

10.3高階函數(shù)/17711.4.4數(shù)據(jù)補全/201

10.4閉包/18011.4.5數(shù)據(jù)編碼/202

10.5裝飾器/18211.4.6數(shù)據(jù)可視化/204

小結(jié)/187小結(jié)/211

習(xí)題/188習(xí)題/212

第11章數(shù)據(jù)分析與可視化/189第12章機器學(xué)習(xí)實戰(zhàn)/213

11.1numpy庫的使用/18912.1KNN/213

11.1.1numpy庫概述/18912.1.1K近鄰算法原理/214

11.1.2numpy庫安裝/19012.1.2KNN算法實現(xiàn)/214

11.1.3numoy庫解析/19012.1.3KNN算法優(yōu)缺點/216

11.2pandas庫的使用/19412.2手寫數(shù)字識別系統(tǒng)/216

11.2.1pandas庫概述/19412.2.1實驗開始/217

11.2.2pandas庫安裝/19412.2.2測試的步驟/218

11.2.3pandas庫使用/19512.2.3如何可視化選取k值/220

11.3Matplotlib庫的使用/19612.3scikit-learn庫/223

11.3.1Matplotlib庫概述/19612.3.1scikit-learn簡介/223

11.3.2Matplotlib庫安裝/19712.3.2scikit-learn實現(xiàn)手寫數(shù)字識別/224

11.3.3Matplotlib庫使用/19712.3.3交叉驗證法/226

11.4泰坦尼克號乘客生存分析/198小結(jié)/230

11.4.1數(shù)據(jù)來源/199習(xí)題/230

11.4.2導(dǎo)入數(shù)據(jù)/199參考文獻/231

11.4.3查看數(shù)據(jù)/199

IV.

Python程序設(shè)計

第1章

初識Python

Python是近年來發(fā)展勢頭最為迅猛的一門編程語言,它在數(shù)據(jù)分析、機

器學(xué)習(xí)、Web應(yīng)用開發(fā)、自動化運維、網(wǎng)絡(luò)爬蟲等領(lǐng)域均有不俗的表現(xiàn)。

Python專注于解決問題、擁有自由開放的社區(qū)環(huán)境、提供了豐富的API和第

三方工具包,各種Web框架、數(shù)據(jù)分析框架、爬蟲框架、機器學(xué)習(xí)框架應(yīng)有

盡有。越來越多的機構(gòu)和個人開始使用它,如今Python已經(jīng)風(fēng)靡全球,被業(yè)

界認為是最有前途的編程語言之一。本章將從Python的起源、發(fā)展、特點、

下載和安裝、Python程序的編寫和調(diào)試等內(nèi)容開始,帶領(lǐng)大家初識Python。

1.1Python的起源

很多偉大的作品往往是其作者打發(fā)時間的產(chǎn)物,Python也是如此。

1989年圣誕節(jié),待在阿姆斯特丹的荷蘭人吉多·范羅蘇姆(Guidovan

Rossum)突發(fā)奇想,想起之前開發(fā)ABC語言時還留下一些問題沒有解決,

Python的

他決定寫個腳本解釋語言打發(fā)時間,Python也因此而誕生,關(guān)于Python這起源

.1

Python程序設(shè)計

個名字,據(jù)說來自于吉多非常喜歡的電視劇MontyPython'sFlyingCircus。

Python語言吸取了ABC語言因沒有開源而失敗的經(jīng)驗,吉多將Python語言上傳至開源

社區(qū),并且實現(xiàn)了ABC語言未曾實現(xiàn)的部分功能。可以說,Python語言是從ABC語言發(fā)展

起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強大的語言,為小型團體所設(shè)計的)的影響,

并且結(jié)合了UNIXshell和C語言用戶的習(xí)慣。

1991年,第一個Python編譯器誕生。它是用C語言實現(xiàn)的,并能夠調(diào)用C語言的庫文

件。從一誕生,Python就具有類、函數(shù)、異常處理、包含表和詞典在內(nèi)的核心數(shù)據(jù)類型,以

及模塊為基礎(chǔ)的拓展系統(tǒng)。

1.2Python的發(fā)展

最初的Python完全由吉多本人開發(fā)。很快Python就得到了吉多同事的歡迎。他們迅速

地反饋使用意見,并參與到Python的改進工作中。吉多和一些同事構(gòu)成了Python的核心團

隊,他們將自己大部分的時間用于hackPython。隨后,Python拓展到他們所在的研究所之

外。Python將許多機器層面上的細節(jié)隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。

Python程序員可以花更多的時間用于思考程序的邏輯,而不是具體的實現(xiàn)細節(jié),這一特征吸

引了廣大的程序員,Python開始流行。

2011年1月,Python被TIOBE編程語言排行榜評為“2010年度編程語言”的稱號。

2019年1月,Python再續(xù)輝煌,榮獲了“2018年度編程語言”的稱號。

如今的Python已經(jīng)成為應(yīng)用范圍較廣的編程語言之一,無形之中它也打破了近20年來

如鐵一般的Java、C和C++三足鼎立的格局。對此,TIOBE在發(fā)布2018年度編程語言排

行榜時,如此評價道:“Python是當(dāng)今高校中最常被教授的首選語言,它在統(tǒng)計領(lǐng)域排名第

一、在AI編程中排名第一、在編寫腳本時排名第一、在編寫系統(tǒng)測試時排名第一。除此之外,

Python還在Web編程和科學(xué)計算領(lǐng)域處于領(lǐng)先地位??傊?,Python無處不在?!?/p>

Python發(fā)展到現(xiàn)在,經(jīng)歷了很多版本,大家可以到Python官網(wǎng)進行查看,網(wǎng)址是

https://www.P/,下面僅列舉一些比較有代表性的版本信息。

●Python1.0:1994年1月

●Python1.2:1995年4月10日

●Python1.3:1995年10月12日

●Python1.4:1996年10月25日

●Python1.5:1997年12月31日

●Python1.6:2000年09月05日

2.

Python程序設(shè)計第1章初識Python

●Python2.0:2000年10月16日

●Python2.1:2001年4月17日

●Python2.2:2001年12月21日

●Python2.3:2003年7月29日

●Python2.4:2004年11月30日

●Python2.5:2006年12月19日

●Python2.6:2008年10月1日

●Python2.7:2010年7月3日

●Python3.0:2008年12月3日

●Python3.1:2009年6月27日

●Python3.2:2011年2月20日

●Python3.3:2012年9月29日

●Python3.4:2014年5月16日

●Python3.5:2015年9月13日

●Python3.6:2016年12月23日

●Python3.7:2018年6月27日

仔細閱讀的用戶肯定會有這樣的疑問:既然在2008年已經(jīng)發(fā)布了Python3.0版本,為

什么在2010年還要發(fā)布Python2.7版本呢?

這是因為Python3.0版本不再兼容Python2.0版本,導(dǎo)致很多用戶無法正常升級使用新

版本,所以后來又發(fā)布了一個Python2.7的過渡版本,而且Python2.7僅支持到2020年,

所以新手最好從Python3.0開始入手。

1.3Python的特點

Python具有以下顯著特點。

1.Python的優(yōu)點

(1)簡單易學(xué)

Python是一種代表簡單主義思想的語言,閱讀一個編寫規(guī)范的Python程序就感覺像是

在讀英語一樣,它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。Python非常容易上手,

因為Python語法非常簡單。

(2)免費、開源

Python是FLOSS(自由/開放源碼軟件)之一,使用者可以自由地發(fā)布這個軟件的副本、

.3

Python程序設(shè)計

閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中,這種扎實的群眾基礎(chǔ)也

是Python變得愈來愈優(yōu)秀的原因之一。

(3)高級語言

用Python語言編寫程序的時候無須考慮諸如如何管理程序使用的內(nèi)存一類的底層細節(jié)。

(4)可移植性

由于它的開源本質(zhì),Python已經(jīng)被移植到許多平臺上,如:Linux、Windows、Macintosh、

OS/2等平臺。

(5)解釋性

一個編譯性語言(如C或C++)編寫的程序可以從源文件轉(zhuǎn)換成計算機使用的語言(二

進制代碼,即0和1),這個過程通過編譯器完成。運行程序時,連接/轉(zhuǎn)載器軟件把編譯好

的程序從硬盤復(fù)制到內(nèi)存中運行。

Python語言編寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。在計算

機內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再將其翻譯成計算機使

用的機器語言并運行。這使得使用Python更加簡單,也使得Python程序更加易于移植。

(6)面向?qū)ο?/p>

在Python中一切皆對象,它完全支持繼承、重載和泛型設(shè)計。

(7)可擴展性

如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不被公開,可以使用C或C++編

寫部分程序,然后在Python中使用它們即可。

(8)豐富的庫

Python內(nèi)置幾百個類和函數(shù)庫,第三方庫更是高達十幾萬個,幾乎覆蓋了計算機技術(shù)的

各個領(lǐng)域。

Python的優(yōu)點還有很多,在后續(xù)的學(xué)習(xí)中我們會慢慢地感受和體會到這一點。

2.Python的缺點

(1)運行速度慢

這里是指與C和C++相比。Python是解釋型語言,代碼在執(zhí)行時會一行一行地翻譯成

CPU能理解的機器碼,這個翻譯過程非常耗時,所以速度比較慢。而C和C++程序是運行

前直接編譯成CPU能執(zhí)行的機器碼,所以非??臁?/p>

(2)代碼不能加密

如果要發(fā)布Python程序,實際上就是發(fā)布源代碼,這一點跟C和C++語言不同,C和

C++語言不用發(fā)布源代碼,只需要把編譯后的機器碼發(fā)布出去。要從機器碼反推出源代碼是

非常困難的,所以,凡是編譯型的語言都沒有這個問題,而解釋型的語言,則必須把源代碼

4.

Python程序設(shè)計第1章初識Python

發(fā)布出去。

(3)獨特的語法

這也許不應(yīng)該被稱為缺點,但是它用縮進來區(qū)分語句關(guān)系的方式還是會給很多初學(xué)者帶

來困惑,即便是很有經(jīng)驗的Python程序員,也可能深陷其中。

1.4Python的應(yīng)用

作為一種通用編程語言,Python的應(yīng)用場景幾乎是無限的。在Web開發(fā)、人工智能、

數(shù)據(jù)分析、自動化運維、網(wǎng)絡(luò)爬蟲、游戲開發(fā)等領(lǐng)域Python均有不俗的表現(xiàn)。

1.Web開發(fā)

Python語言能夠滿足快速迭代的需求,非常適合互聯(lián)網(wǎng)公司的Web開發(fā)應(yīng)用場景。

Python用作Web開發(fā)已有十多年的歷史,在這個過程中,涌現(xiàn)出了很多優(yōu)秀的Web開

發(fā)框架,如Django和Flask。許多知名網(wǎng)站都是使用Python語言開發(fā)的,如豆瓣、知乎、

Instagram、Pinterest、Dropbox等。這一方面說明了Python作為Web開發(fā)的受歡迎程度,

另一方面也說明Python語言用作Web開發(fā)經(jīng)受住了大規(guī)模用戶并發(fā)訪問的考驗。

2.人工智能

Python在人工智能大范疇領(lǐng)域內(nèi)的機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面都作為主流

的編程語言得到了廣泛的支持和應(yīng)用。最流行的神經(jīng)網(wǎng)絡(luò)框架(如Facebook的PyTorch和

Google的TensorFlow)都采用Python語言。

3.科學(xué)計算與數(shù)據(jù)分析

隨著numpy、SciPy、Matplotlib等科學(xué)計算與數(shù)據(jù)分析開源項目的開發(fā)和完善,Python

越來越適合于做科學(xué)計算和數(shù)據(jù)分析了。它不僅支持各種數(shù)學(xué)運算,還可以繪制高質(zhì)量的2D

和3D圖像。與科學(xué)計算領(lǐng)域最流行的商業(yè)軟件MATLAB相比,Python比MATLAB所采用

的腳本語言的應(yīng)用范圍更廣泛,可以處理更多類型的文件和數(shù)據(jù)。

4.自動化運維

在很多操作系統(tǒng)中,Python是標準的系統(tǒng)組件。大多數(shù)Linux發(fā)行版和MacOSX都

集成了Python,可以在終端下直接運行Python。Python標準庫包含了多個調(diào)用操作系統(tǒng)

功能的庫。對于Windows操作系統(tǒng),通過pywin32這個第三方軟件包,Python能夠訪問

Windows的COM服務(wù)及其他WindowsAPI。一般而言,Python編寫的系統(tǒng)管理腳本在可讀性、

性能、代碼重用度、擴展性等方面都優(yōu)于普通的shell腳本。

5.游戲開發(fā)

Python在很早的時候就是一種游戲編程的輔助工具。在《星球大戰(zhàn)》中扮演了重要的角

.5

Python程序設(shè)計

色。在《阿貝斯》(Abyss)、《星球之旅》(StarTrek)、《奪寶奇兵》(IndianaJones)等影片

中擔(dān)當(dāng)特技和動畫制作的工業(yè)光魔公司(IndustrialLight)就采用Python制作商業(yè)動畫?,F(xiàn)

在通過Python完全可以編寫出非常棒的游戲程序。

1.5搭建Python開發(fā)環(huán)境

Python已經(jīng)被移植到許多平臺上,如Windows、Mac和Linux等,用戶可以根據(jù)需要

為這些平臺安裝Python,但在不同的平臺上,安裝Python的方法不盡相同,本節(jié)將帶領(lǐng)大

家在不同的平臺上搭建Python開發(fā)環(huán)境。

考慮到本書是基于Windows平臺開發(fā)Python程序,所以將重點介紹在

Windows平臺上搭建Python開發(fā)環(huán)境的過程。

1.5.1在Windows平臺搭建Python開發(fā)環(huán)境安裝運行Python

1.下載安裝Python

①訪問Python的官網(wǎng)/,選擇Windows平臺的安裝包,如圖1-1

所示。

圖1-1選擇Windows平臺的安裝包

②單擊圖1-1中的“python3.7.3”按鈕,下載Python安裝包,

下載成功的安裝包,如圖1-2所示。

③雙擊圖1-2所示的Python安裝包,進入Python安裝界面,如

圖1-3所示。圖1-2Python安裝包

6.

Python程序設(shè)計第1章初識Python

圖1-3選擇安裝方式

圖1-3中為用戶提供了兩種安裝方式。第一種是默認的安裝方式;第二種是自定義安裝方式,

用戶可以自己選擇安裝路徑,靈活選擇啟用或禁用Python的某些功能。

另外,需要特別注意的是,在圖1-3的下方有一個“AddPython3.7toPATH”復(fù)選框。

如果勾選該復(fù)選框,安裝程序會自動幫助用戶添加環(huán)境變量。如果未勾選,需要用戶手動配

置環(huán)境變量。

④對于新手而言,選擇默認安裝并勾選“AddPython3.7toPATH”復(fù)選框即可。安裝

過程如圖1-4所示。

圖1-4安裝過程

⑤安裝過程大約會持續(xù)幾分鐘,然后出現(xiàn)圖1-5所示的安裝成功窗口,單擊“Close”按

鈕完成安裝。

.7

Python程序設(shè)計

圖1-5完成安裝

2.配置環(huán)境變量

如果在安裝過程中未勾選圖1-3中的“AddPython3.7toPATH”復(fù)選框,則Python

安裝成功后,還需要手動配置環(huán)境變量,具體步驟如下:

①右擊“計算機”圖標,在彈出的快捷菜單中選擇“屬性”菜單項,打開“系統(tǒng)”窗口,

單擊右側(cè)的“高級系統(tǒng)設(shè)置”超鏈接,彈出“系統(tǒng)屬性”對話框,如圖1-6所示。

②單擊圖1-6中的“環(huán)境變量”按鈕,彈出“環(huán)境變量”對話框,單擊系統(tǒng)環(huán)境變量

“Path”,如圖1-7所示。

圖1-6“系統(tǒng)屬性”對話框圖1-7“環(huán)境變量”對話框

③單擊圖1-7下方的“編輯”按鈕,對環(huán)境變量Path進行編輯,如圖1-8所示。

8.

Python程序設(shè)計第1章初識Python

④在Path變量值的尾部加上英文的分號,然后再添加Python的安裝路徑,單擊“確定”

按鈕,完成環(huán)境變量的配置,如圖1-9所示。

圖1-8“編輯系統(tǒng)變量”對話框圖1-9添加Python安裝路徑

安裝Python后,在“開始”菜單的“所有程序”中看到圖1-10所示的新增菜單項。

圖1-10新增的Python3.7菜單項

這4項內(nèi)容分別是:

●IDLE(Python3.764-bit):官方自帶的Python集成開發(fā)環(huán)境。

●Python3.7(64-bit):Python終端。

●Python3.7Manuals(64-bit):CHM版本的Python3.7官方使用文檔。

●Python3.7ModuleDocs(64-bit):模塊速查文檔。

3.運行Python

安裝成功后,打開命令行窗口,輸入python,按【Enter】鍵,在窗口看到Python的版

本信息,說明Python已經(jīng)安裝成功,如圖1-11所示。

圖1-11Python版本信息

.9

Python程序設(shè)計

1.5.2在Mac平臺搭建Python開發(fā)環(huán)境

MAC系統(tǒng)一般都自帶有Python2.x版本。如果Mac系統(tǒng)的版本號高于OS10.9,那么

系統(tǒng)自帶的Python版本是2.7。只需要在終端輸入Python命令即可運行。

要安裝最新的Python3.7,有兩個方法:

①下載Python3.7的安裝程序,雙擊運行并安裝;

②如果已經(jīng)安裝了“Homebrew”,則直接通過“brewinstallPython3”命令安裝即可。

1.5.3在Linux平臺搭建Python開發(fā)環(huán)境

大多數(shù)Linux系統(tǒng)發(fā)行版都自帶了Python2.x版本。目前最新版的Ubuntu已經(jīng)自帶了

Python3.x版本。如果Linux系統(tǒng)沒有安裝Python或者只安裝了Python2.x,而需要的是

Python3.x,那么可以自己下載并安裝,具體步驟如下:

①登錄Python官網(wǎng):/。

②選擇適合于Linux的源碼包,如圖1-12所示。

圖1-12選擇Python源碼包

③下載python3.7.3源碼包。

④解壓下載的源碼包Python-3.7.3.tgz。

tar-zvxfpython-3.7.3.tgz

⑤解壓后,進入解壓目錄。

cdpython-3.7.3

⑥創(chuàng)建安裝目錄。

安裝Python3前,先在/usr/local下創(chuàng)建一個新的文件夾Python3(作為Python3的安

裝路徑,以免覆蓋Python2版本)。

mkdir/usr/local/python3

10.

Python程序設(shè)計第1章初識Python

⑦編譯安裝。

./con?gure--pre?x=/usr/local/python3

make

makeinstall

⑧建立新版本Python的軟鏈接。

ln-s/usr/local/python3/bin/python3/usr/bin/python3

⑨檢測安裝是否成功。

重新打開一個shell,輸入命令Python3,如果能進入圖1-13所示的Python交互環(huán)境

就表示安裝成功。

圖1-13Python交互環(huán)境

1.6Python開發(fā)環(huán)境IDLE簡介

IDLE是Python標準發(fā)行版內(nèi)置的一個簡單小巧的集成開發(fā)環(huán)境(Integrated

DevelopmentEnvironment,IDE),安裝好Python以后,IDLE就自動安裝

好了。IDLE包括了交互式命令行、編輯器、調(diào)試器等基本組件,足以應(yīng)付

大多數(shù)簡單應(yīng)用。IDLE是用Python編寫的,最初的作者正是吉多,它是非

利用IDLE創(chuàng)建

商業(yè)Python開發(fā)和初學(xué)者學(xué)習(xí)Python的最佳選擇之一。并運行Python

程序

1.6.1啟動IDLE

安裝Python后,可以選擇“開始”→“所有程序”→“Python3.7”→“IDLE”命令啟

動IDLE。IDLE啟動后的初始窗口如圖1-14所示。

圖1-14IDLE的交互式編程模式(PythonShell)

.11

Python程序設(shè)計

啟動IDLE后,首先出現(xiàn)的是Python

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論