Python程序設計教程_第1頁
Python程序設計教程_第2頁
Python程序設計教程_第3頁
Python程序設計教程_第4頁
Python程序設計教程_第5頁
已閱讀5頁,還剩310頁未讀, 繼續(xù)免費閱讀

付費閱讀全文

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

文檔簡介

高等學校大數(shù)據(jù)技術與應用規(guī)劃教材

Python程序設計教程

何慶新解姍姍王慧主編

內(nèi)容簡介

本書系統(tǒng)地介紹了Python編程語言的基礎知識,共分13章,主要內(nèi)容包括Python概述、Python

語言基礎、程序控制結構、Python序列、函數(shù)設計與使用、面向?qū)ο缶幊獭⑽募僮鳌?shù)據(jù)庫操作、

網(wǎng)絡爬蟲、NumPy、pandas數(shù)據(jù)處理與分析、Matplotlib數(shù)據(jù)可視化基礎以及綜合應用案例。

本書內(nèi)容全面,概念清晰,例題豐富,循序漸進,易于學習。書中以大量實例引導讀者逐步

深入學習,每個實例程序都有詳盡的解釋,并都能在本書推薦的運行環(huán)境中正常運行。實例中既

有簡單易懂的程序片段,也有實際可用的綜合案例,有利于讀者迅速掌握Python開發(fā)的關鍵技術。

本書適合作為普通高等院校計算機、大數(shù)據(jù)及相關專業(yè)Python課程的教材,也可作為

Python初學者及從事大數(shù)據(jù)相關技術人員的參考用書,還可供自學考試的考生和全國計算機等

級考試(二級Python)考生研習。

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

Python程序設計教程/何慶新,解姍姍,王慧主編.—北京:

中國鐵道出版社有限公司,2019.8

高等學校大數(shù)據(jù)技術與應用規(guī)劃教材

ISBN978-7-113-25902-0

Ⅰ.①P…Ⅱ.①何…②解…③王…Ⅲ.①軟件工具-程序

設計-高等學校-教材Ⅳ.①TP311.561

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

書名:Python程序設計教程

作者:何慶新解姍姍王慧

策劃:潘晨曦編輯部電話2061

責任編輯:何紅艷包寧

封面設計:鄭春鵬

責任校對:張玉華

責任印制:郭向偉

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

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

印刷:三河市宏盛印務有限公司

版次:2019年8月第1版2019年8月第1次印刷

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

書號:ISBN978-7-113-25902-0

定價:49.80元

版權所有侵權必究

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

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

PREFACE前言

Python已經(jīng)成為最受歡迎的程序設計語言之一。自從2004年以后,Python的使用率呈線

性增長。Python是解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設計語言。早期的Python主

要用于UNIX系統(tǒng),由于其強大功能和各方面的優(yōu)點逐漸為人們認識,到了20世紀80年代,

Python開始進入其他操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到廣泛使用,成

為最流行的程序設計語言之一。隨著計算機的普及和發(fā)展,Python在各個領域的應用越來越

廣泛,幾乎各類計算機系統(tǒng)都支持Python的開發(fā)環(huán)境,這為Python的普及和應用奠定了強

大基礎。

在大數(shù)據(jù)、云計算、人工智能等技術飛速發(fā)展的今天,Python有了更加廣闊的用武之地。

Python解釋器作為自由軟件,由全世界的Python愛好者維護、擴充著能夠適應各種需求的庫,

因此,Python當前仍在不斷快速發(fā)展著。隨著Python的擴展庫不斷豐富,使得Python無論是

作為入門編程語言還是在解決大數(shù)據(jù)分析、云計算、科學計算等領域問題都有著得天獨厚的優(yōu)

勢。Python作為編程語言本身來說很容易上手,即使從沒接觸過程序開發(fā)的學習者也很容易掌

握Python程序的編寫,這就使軟件設計、開發(fā)者不必過分關注程序的語言實現(xiàn),可以騰出時

間去關注優(yōu)化和算法問題。

據(jù)TIOBE編程語言社區(qū)在2019年3月發(fā)布的最新編程語言排行榜中,Python再度上升

2.39%,一躍超過C++語言,排在第三位,前兩位是Java語言和C語言。

Python得到越來越多編程愛好者的應用,使得Python語言也順理成章地進入本科教學計算

機類知識的課程體系。本書編者通過認真分析和研究Python體系,結合多年教學實踐,列入

大量實例,深入淺出地引導讀者掌握Python程序設計的基本方法,并結合案例讓讀者能夠?qū)?/p>

所學的知識整合運用,讓讀者能夠在應用層面體驗Python。

本書共13章,可分為兩部分:第1章~第7章為第一部分,第8章~第13章為第二部分。

第一部分主要介紹Python基礎知識,包括Python概述、語言基礎、程序控制結構、Python序

列、函數(shù)設計與使用、面向?qū)ο缶幊?、文件操作等方面。第二部分主要介紹Python高級應用

及綜合案例,包括數(shù)據(jù)庫操作、網(wǎng)絡爬蟲、NumPy、pandas數(shù)據(jù)處理與分析、Matplotlib數(shù)據(jù)可

視化等應用。

本書的特點有:知識點的安排強調(diào)整體性和系統(tǒng)性,知識點的表達強調(diào)層次性和有序性;理

論與實際緊密結合,每章節(jié)內(nèi)容先介紹知識點再通過實例理解知識點,通過相對綜合的實例熟悉

·I·

知識的具體應用。本書最后一章網(wǎng)站日志分析案例與旅游推薦案例是較復雜的應用,涉及Python

中的大部分知識內(nèi)容,能使讀者對Python理解更加深入。

本書由閩南理工學院信息管理學院何慶新、解姍姍、王慧主編。本書出版得到2018年福

建省本科高校一般教育教學改革研究項目《以校企合作為基礎加強應用型高校計算機類專業(yè)課

程建設的研究與實踐》資助,項目批準號:FBJG20180153。

本書編寫過程中得到閩南理工學院各級領導的大力支持,同時校企合作企業(yè)泉州尚創(chuàng)網(wǎng)絡

科技有限公司提供了大量的技術支持,在此一并表示衷心的感謝!中國鐵道出版社有限公司

為本書的出版給予了大力支持,相關編輯出色的工作表現(xiàn)給我們留下了深刻印象,在此也表示

感謝!

由于本書編者水平有限,書中難免會有疏漏和不足之處,懇請廣大讀者和同行批評指正。

編者

2019年5月

·II·

目錄

CONTENTS目錄

2.4案例精選28

第一部分Python基礎知識小結32

習題32

第1章Python概述1

第3章程序控制結構35

1.1Python的誕生和特點2

1.1.1Python的誕生23.1條件表達式35

1.1.2Python的特點23.2選擇結構36

1.2Python的功能33.2.1if語句36

1.2.1Python常規(guī)應用33.2.2if…else語句37

1.2.2Python在大數(shù)據(jù)時代下的應用...33.2.3if…elif…else語句39

1.3Python的安裝43.2.4選擇結構的嵌套40

1.4常用的Python第三方編輯器63.3循環(huán)結構42

1.5第一個Python程序73.3.1while語句42

小結113.3.2for語句45

習題113.3.3continue和break語句49

3.3.4循環(huán)嵌套51

第2章Python語言基礎12

3.4案例精選55

2.1標準輸入/輸出12小結61

2.1.1標準輸入函數(shù)input()12習題61

2.1.2標準輸出函數(shù)print()

第4章Python序列63

與格式化輸出13

2.2Python數(shù)據(jù)類型174.1列表與列表推導式63

2.2.1數(shù)值類型174.1.1列表創(chuàng)建與刪除63

2.2.2字符串174.1.2列表常用方法65

2.2.3布爾類型204.1.3列表推導式67

2.2.4空值None204.1.4切片68

2.2.5數(shù)據(jù)類型的轉(zhuǎn)換204.2元組與生成器推導式69

2.3常量、變量、運算符與表達式...214.2.1元組69

2.3.1常量與變量214.2.2生成器推導式71

2.3.2運算符與表達式234.3字典72

2.3.3常用內(nèi)置函數(shù)254.3.1創(chuàng)建字典和添加、修改與刪除

元素72

·I·

4.3.2訪問字典對象的數(shù)據(jù)756.3.1繼承125

4.4集合766.3.2多態(tài)129

4.4.1集合基礎知識766.4特殊方法與運算符重載130

4.4.2集合操作與運算776.5案例精選132

4.4.3列表、元組、字典、集合的小結140

區(qū)別和相互轉(zhuǎn)換81習題140

4.5序列解包82

第7章文件操作142

4.6案例精選85

7.1文件對象142

小結87

7.2文本文件操作144

習題88

7.3二進制文件操作146

第5章函數(shù)設計與使用907.3.1使用pickle模塊146

5.1函數(shù)的定義與調(diào)用917.3.2使用struct模塊147

5.1.1函數(shù)的定義917.4對Excel數(shù)據(jù)的讀/寫操作148

5.1.2函數(shù)調(diào)用927.5文件與文件夾操作151

5.1.3函數(shù)的返回值937.5.1os與os.path模塊151

5.1.4匿名函數(shù)947.5.2shutil模塊153

5.2函數(shù)的參數(shù)傳遞967.6文件目錄154

5.2.1默認值參數(shù)與關鍵參數(shù)967.6.1文件目錄函數(shù)154

5.2.2可變長度參數(shù)987.6.2文件目錄操作155

5.2.3參數(shù)傳遞時的序列解包987.7案例精選156

5.3變量作用域100小結161

5.4閉包103習題162

5.5遞歸函數(shù)104

5.6模塊化程序設計108第二部分Python高級應用

5.6.1模塊及其引用108

第8章數(shù)據(jù)庫操作163

5.6.2編寫自己的模塊和包110

8.1使用Python操作SQLite

5.7案例精選111

數(shù)據(jù)庫163

小結113

8.1.1Connection對象164

習題113

8.1.2Cursor對象165

第6章面向?qū)ο缶幊?148.1.3Row對象168

6.1類的定義與使用1158.2使用Python操作其他關系型

6.2數(shù)據(jù)成員與成員方法116數(shù)據(jù)庫169

6.2.1私有成員與公有成員1168.2.1操作Access數(shù)據(jù)庫169

6.2.2數(shù)據(jù)成員1178.2.2操作MSSQLServer數(shù)據(jù)庫169

6.2.3方法1188.2.3操作MySQL數(shù)據(jù)庫170

6.2.4屬性1208.3操作MongoDB數(shù)據(jù)庫171

6.3繼承、多態(tài)1258.4案例精選173

·II·

目錄

小結18110.3.5排序215

習題18210.3.6集合運算215

10.4案例精選216

第9章網(wǎng)絡爬蟲183

小結217

9.1網(wǎng)絡爬蟲概述183

習題217

9.1.1網(wǎng)絡爬蟲及其應用183

9.1.2網(wǎng)絡爬蟲結構185第11章pandas數(shù)據(jù)處理與分析...219

9.2Python第三方庫18511.1pandas簡介219

9.2.1Python第三方庫的概念18511.2數(shù)據(jù)準備219

9.2.2Python第三方庫的安裝11.2.1pandas的數(shù)據(jù)結構219

方法18611.2.2數(shù)據(jù)導入222

9.2.3Python第三方庫的使用11.2.3數(shù)據(jù)導出225

方法18711.3數(shù)據(jù)預處理227

9.3爬蟲基本庫18711.3.1數(shù)據(jù)清洗227

9.3.1Requests庫18711.3.2數(shù)據(jù)抽取230

9.3.2BeautifulSoup庫18911.3.3插入記錄235

9.4案例精選19211.3.4修改記錄236

9.4.1抓取泉州地區(qū)短租房信息19211.3.5排名索引237

9.4.2抓取酷狗TOP500的數(shù)據(jù)19611.3.6數(shù)據(jù)合并240

小結19811.3.7數(shù)據(jù)計算244

習題19811.3.8數(shù)據(jù)分組246

11.3.9日期處理247

第10章NumPy201

11.4數(shù)據(jù)分析249

10.1ndarray多維數(shù)組201

11.4.1基本統(tǒng)計分析249

10.1.1ndarray數(shù)組的創(chuàng)建201

11.4.2分組分析250

10.1.2ndarray對象的屬性203

11.4.3分布分析251

10.1.3ndarray數(shù)據(jù)類型204

11.4.4交叉分析252

10.1.4數(shù)組變換204

11.4.5結構分析253

10.1.5NumPy的隨機數(shù)函數(shù)206

11.4.6相關分析254

10.2數(shù)組的索引和切片208

11.5案例精選255

10.2.1數(shù)組的索引208

11.5.1數(shù)據(jù)來源255

10.2.2數(shù)組的切片209

11.5.2數(shù)據(jù)清洗256

10.2.3布爾型索引210

11.5.3數(shù)據(jù)探索257

10.2.4花式索引211

小結259

10.3數(shù)組的運算211

習題260

10.3.1數(shù)組的元素級運算211

10.3.2通用函數(shù)212第12章Matplotlib數(shù)據(jù)可視化

10.3.3條件邏輯運算213基礎262

10.3.4統(tǒng)計運算21412.1繪圖基礎語法262

·III·

12.1.1pyplot基礎語法262第13章綜合應用案例282

12.1.2設置動態(tài)參數(shù)26513.1網(wǎng)站日志分析282

12.2分析特征間的關系26713.1.1網(wǎng)站日志解析282

12.2.1散點圖26713.1.2日志數(shù)據(jù)清洗284

12.2.2折線圖26813.1.3日志數(shù)據(jù)分析286

12.2.3案例精選27013.2旅游推薦293

12.3分析特征內(nèi)部關系27313.2.1按性價比給用戶推薦旅游

12.3.1直方圖273產(chǎn)品293

12.3.2餅圖27513.2.2通過熱力圖分析為用戶提供

12.3.3箱線圖275出行建議298

12.3.4案例精選276小結304

小結281習題304

習題281

參考文獻304

·IV·

第1章Python概述

第一部分Python基礎知識

第1章

Python概述

Python已經(jīng)成為最受歡迎的程序設計語言之一。自從2004年以后,Python的使用率呈線

性增長。Python是解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設計語言。早期的Python主要

用于UNIX操作系統(tǒng),由于其強大功能和各方面的優(yōu)點逐漸為人們認識,到了20世紀80年

代,Python開始進入其他操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到廣泛使用,

成為最流行的程序設計語言之一。隨著計算機的普及和發(fā)展,Python在各個領域的應用越來

越廣泛,幾乎各類計算機系統(tǒng)都支持Python的開發(fā)環(huán)境,這為Python的普及和應用奠定了

強大基礎。

Python程序中使用的變量無須聲明,但變量在使用前要賦值,賦值后變量才會被創(chuàng)建,

Python中的變量沒有類型。

本章介紹Python的特點、Python的功能、Python環(huán)境的安裝、IDLE集成開發(fā)環(huán)境(IDE)

應用、常用Python第三方編輯器的應用及調(diào)試應用程序的方法以及第一個Python程序的

開發(fā)。

主要內(nèi)容

Python的誕生和特點。

Python的功能。

Python的安裝。

IDLE集成開發(fā)環(huán)境(IDE)應用。

常用Python第三方編輯器。

第一個Python程序。

學習目標

掌握Python程序的基本結構、基本符號與詞匯。

掌握Python集成開發(fā)環(huán)境IDLE的基本使用方法。

能夠編寫并在IDLE中編輯、運行最簡單的Python程序。

·1·

1.1Python的誕生和特點

1.1.1Python的誕生

Python是荷蘭人GuidovanRossum于1989年創(chuàng)立的。1991年初,第一個Python解釋器誕

生,它是用C語言實現(xiàn)的,并能夠調(diào)用C語言的庫文件。

TIOBE編程語言社區(qū)在2019年3月發(fā)布的最新編程語言排行榜中,Python再度上升2.39%,

超過C++語言,排在第三位,前兩位是Java語言和C語言。

Python實際上是一個可以用許多不同的方式來實現(xiàn)的語言規(guī)范。Python的解釋器如今有多

個語言實現(xiàn),常用的是CPython(官方版本的C語言實現(xiàn)),把Python編譯成中間態(tài)的字節(jié)碼,

然后由虛擬機解釋。其他還有Jython(可以運行在Java平臺)、IronPython(可以運行在.NET

和Mono平臺)、PyPy(Python實現(xiàn)的,支持JIT即時編譯)。Python創(chuàng)始的初衷是“想要一種

既能夠簡單如命令,強大如C的語言”。

1.1.2Python的特點

Python是當今世界上應用最廣泛的計算機語言之一。Python具有以下基本特點:

(1)簡單易學。對于初學Python的編程者來說,Python也非常簡單,Python讓編程者能夠

專注于解決問題而不是去研究語言本身。

(2)自由、開源。Python是FLOSS(自由/開放源碼軟件)之一。即開發(fā)者可以自由地發(fā)

布Python軟件的副本、閱讀其源代碼、對其做改動、把其一部分用于新的自由軟件中。Python

希望看到更加優(yōu)秀的人創(chuàng)造并經(jīng)常改進。

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

(4)可移植性。由于其開源特性,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工

作在不同平臺上)。Python程序無須修改就可以在下述任何平臺上運行:Linux、Windows、

FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、PalmOS、

QNX、VMS、Psion、AcomRISCOS、VxWorks、PlayStation、SharpZaurus、WindowsCE、PocketPC、

Symbian以及Google基于Linux開發(fā)的Android平臺。

(5)解釋性??梢灾苯訌脑创a運行。在計算機內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換為字節(jié)

碼的中間形式,然后將其翻譯成計算機使用的機器語言。

(6)面向?qū)ο?。Python既支持面向過程編程也支持面向?qū)ο缶幊?,在面向過程的語言中,

程序是由過程或僅僅是可重用代碼的函數(shù)構建起來的。在面向?qū)ο蟮恼Z言中,程序是由數(shù)據(jù)和

功能組合而成的對象構建起來的。與其他主要的語言(如C++和Java)相比,Python以一種非

常強大又簡單的方式實現(xiàn)面向?qū)ο缶幊獭?/p>

(7)可擴展可嵌入。為解決某個特殊問題,如執(zhí)行效率要求高,或希望加密某個算法,則

這部分程序可以使用其他語言(如C/C++)編寫,在Python中調(diào)用即可。也可以把Python嵌

入C/C++程序中,從而提供腳本功能。

(8)豐富的庫。Python可以處理各種工作,包括正則表達式、文檔生成、單元測試、線程、

數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系

·2·

第1章Python概述

統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關的操作。

(9)代碼規(guī)范。Python采用強制縮進的方式使得代碼具有較好的可讀性。

(10)Python也有其不足之處:運行速度,對速度要求特別高的時候,可考慮用C++改寫

關鍵部分。不過對于普通用戶而言,機器的運行速度是可以忽略的。因為用戶根本感覺不出來

這種速度的差異。

1.2Python的功能

Python具有豐富和強大的庫。Python常被昵稱為膠水語言,能夠把用其他語言制作的各種

模塊(如C/C++)很容易地連接在一起。常見的一種應用情形是,使用Python快速生成程序的

原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,

比如3D游戲中的圖形渲染模塊,對于性能要求特別高的部分,可以用C/C++重寫,而后封裝

為Python可以調(diào)用的擴展類庫。

1.2.1Python常規(guī)應用

(1)系統(tǒng)編程:提供API(ApplicationProgrammingInterface,應用程序編程接口),能方便

地進行系統(tǒng)維護和管理,是Linux下的標志性語言之一,是很多系統(tǒng)管理員理想的編程工具。

(2)圖形處理:有PIL、Tkinter等圖形庫支持,能方便地進行圖形處理。

(3)數(shù)學處理:NumPy擴展提供與大量標準數(shù)學庫的接口。

(4)文本處理:Python提供的re模塊能支持正則表達式,還提供SGML、XML分析模塊,

許多程序員利用Python進行XML程序開發(fā)。

(5)數(shù)據(jù)庫編程:程序員可通過遵循PythonDB-API(數(shù)據(jù)庫應用程序編程接口)規(guī)范的

模塊與MicrosoftSQLServer、Oracle、Sybase、DB2、MySQL、SQLite等數(shù)據(jù)庫通信。Python自

帶有一個Gadfly模塊,提供了一個完整的SQL環(huán)境。

(6)網(wǎng)絡編程:提供豐富的模塊支持Sockets編程,能方便快速地開發(fā)分布式應用程序。

很多大規(guī)模軟件開發(fā)計劃(如Zope、BitTorrent、Google、Facebook等)都在廣泛地使用它。

(7)Web編程:應用的開發(fā)語言,支持XML技術。

(8)多媒體應用:Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行

二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。

(9)PYMO引擎:PYMO(PythonMemoriesOff)是一款運行于SymbianS60V3、Symbian3、

S60V5、Android系統(tǒng)上的AVG游戲引擎。

1.2.2Python在大數(shù)據(jù)時代下的應用

因為Python擁有大量的數(shù)據(jù)處理庫,所以基本上在大數(shù)據(jù)中用到的機器學習算法中對數(shù)據(jù)

的抓取、對數(shù)據(jù)的處理和分析、對數(shù)據(jù)的繪圖和對數(shù)據(jù)的建模,都可以通過對應庫的支持來實

現(xiàn)。同時在真實的數(shù)據(jù)分析中,Python簡練的語言能夠讓程序員把大量的精力放在數(shù)據(jù)分析和

理解上,而不是花費更多的時間去研究怎么寫代碼。Python具體在大數(shù)據(jù)中的應用有:

(1)網(wǎng)絡爬蟲:又稱網(wǎng)絡蜘蛛,是大數(shù)據(jù)行業(yè)獲取數(shù)據(jù)的核心工具。沒有網(wǎng)絡爬蟲自動地、

不分晝夜地、高智能地在互聯(lián)網(wǎng)上抓取免費數(shù)據(jù),那些大數(shù)據(jù)相關的公司就無法經(jīng)營下去。能夠

·3·

編寫網(wǎng)絡爬蟲的編程語言很多,但Python是主流語言之一,其Scripy爬蟲框架應用非常廣泛。

(2)數(shù)據(jù)分析與處理:在大量數(shù)據(jù)的基礎上,結合科學計算、機器學習等技術,對數(shù)據(jù)進

行清洗、去重、規(guī)格化和針對性的分析是大數(shù)據(jù)行業(yè)的基石。Python是數(shù)據(jù)分析的主流語言之

一。Python也是一個比較完善的數(shù)據(jù)分析生態(tài)系統(tǒng),其中Matplotlib經(jīng)常會被用來繪制數(shù)據(jù)圖

表,它是一個2D繪圖工具,有著良好的跨平臺交互特性。日常做描述統(tǒng)計用到的直方圖、散

點圖、條形圖等都會用到它,編寫簡單的代碼即可畫出圖。人們?nèi)粘?吹降腒線圖、月線圖也

可用Matplotlib繪制。如果在證券行業(yè)做數(shù)據(jù)分析,Python是必不可少的。

(3)人工智能應用:在人工智能的應用方面,得益于Python強大而豐富的庫以及數(shù)據(jù)分析

能力。Python在人工智能大范疇領域內(nèi)的機器學習、神經(jīng)網(wǎng)絡、深度學習等方面都是主流的編

程語言,得到廣泛的支持和應用。Python在人工智能中能夠找到比較成熟的包來加以調(diào)用。而

且Python是面向?qū)ο蟮膭討B(tài)語言,且適用于科學計算,這就使得Python在人工智能方面?zhèn)涫?/p>

青睞。雖然人工智能程序不限于Python,但依舊為Python提供了大量的API,這也正是因為

Python當中包含著較多的適用于人工智能的模塊,比如Scikit-learn模塊等。調(diào)用方便、科學

計算功能強大依舊是Python在AI領域最強大的競爭力。

1.3Python的安裝

通常,Linux系統(tǒng)下(如Ubuntu、CentOS等)默認隨系統(tǒng)安裝Python程序,所以本節(jié)主要

介紹如何在Windows平臺下安裝Python開發(fā)環(huán)境。

(1)登錄Python官網(wǎng)下載安裝包:/downloads/windows/,下載適合自

已系統(tǒng)的Python安裝包,以64位的軟硬件系統(tǒng)為例,有3種類型的安裝包供選擇:Windows

x86-64embeddablezipfile、Windowsx86-64executableinstaller、Windowsx86-64web-based

installer,本書以Windowsx86-64executableinstaller安裝包(python-3.7.3-amd64.exe)為例進

行安裝講解。

(2)雙擊安裝包:python-3.7.3-amd64.exe,如圖1-1所示,打開安裝界面如圖1-2所示。

(3)在圖1-2中,勾選AddPython3.7toPATH復選框,然后單擊Customizeinstallation選項,

以便自行配置安裝路徑,在打開的選項中保持默認設置即可,如圖1-3所示,單擊Next按鈕。

圖1-1Python安裝包圖1-2Python安裝界面

(4)在打開的圖1-4中,修改安裝路徑(如更改路徑為D:\Programs\Python\Python37),單

擊Install按鈕。

·4·

第1章Python概述

圖1-3選擇功能界面圖1-4修改安裝目錄界面

(5)打開圖1-5所示界面,等待安裝完成。

(6)打開圖1-6所示界面,說明已安裝完成,單擊Close按鈕。

圖1-5等待安裝完成界面圖1-6安裝完成界面

(7)測試Python,在DOS命令提示窗口中輸入“python”,輸出圖1-7所示Python信息,

說明Python安裝成功。

圖1-7測試Python安裝成功界面

(8)使用Python命令,在Python2.X下輸入print"HelloWorld!"或在Python3.X下輸入

print("HelloWorld!"),此處安裝的Python版本是Python3.X,因此需要采用后者的形式,輸出

圖1-8所示結果。

圖1-8測試print命令進行輸出

·5·

(9)Python內(nèi)置開發(fā)環(huán)境的使用。在安裝Python后,選擇“開始”→“所有程序”→Python

3.7→IDEL(Python3.764-bit)命令(見圖1-9),即可打開Python集成開發(fā)環(huán)境IDEL,如圖1-10

所示。

圖1-9開始菜單中的IDLE命令圖1-10Python集成開發(fā)環(huán)境IDEL

在PythonShell下完成程序是交互式編程。交互式編程不需要創(chuàng)建腳本文件,是通過Python

解釋器的交互模式來編寫代碼,交互式編程的好處是程序?qū)崿F(xiàn)方便快捷。

1.4常用的Python第三方編輯器

集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)是用于提供程序開發(fā)環(huán)境的應

用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。集成了代碼編寫功能、

分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務套(組)。所有具備這一特性的軟件

或者軟件套(組)都可以叫集成開發(fā)環(huán)境。

1.優(yōu)秀Python編程環(huán)境一般要求

(1)保存和加載源代碼文件。一款集成開發(fā)環(huán)境或者編輯器應該可以保存現(xiàn)有工作,并在

之后重新打開時仍然保持離開環(huán)境時的狀態(tài)。

(2)在環(huán)境內(nèi)運行代碼。在該環(huán)境下不需要退出編輯器來運行Python代碼,在其內(nèi)可以直

接運行Python程序。

(3)支持調(diào)試。在程序運行時支持逐步運行代碼,或查看中間變量、設置斷點等功能,以

便于調(diào)試。

(4)語法、關鍵字高亮顯示。支持對代碼中的關鍵詞、變量和符號快速標識可以讓閱讀和

理解代碼更為輕松。

(5)自動補全代碼。調(diào)用Python內(nèi)置庫或函數(shù)時可以給出較好的提示或補全相應的代碼,

并能夠?qū)Υa做好縮進。

2.Python常用的集成開發(fā)環(huán)境

1)PyCharm

PyCharm是一個專門面向Python的全功能集成開發(fā)環(huán)境。擁有付費版(專業(yè)版)和免費開

源版(社區(qū)版),PyCharm在Windows、MacOSX、Linux系統(tǒng)中都支持快速安裝和使用。

PyCharm直接支持Python開發(fā)環(huán)境,打開一個新的文件即可開始編寫代碼。用戶也可在

PyCharm中直接運行和調(diào)試Python程序,并且它支持源碼管理和項目。

·6·

第1章Python概述

2)Eclipse+PyDev

Eclipse實際上是一款面向Java開發(fā)并兼容Linux、Windows、OSX的集成開發(fā)環(huán)境。它擁

有豐富的插件和擴展功能市場,這使得Eclipse適用于各種各樣的開發(fā)項目。Eclipse中的PyDev

插件支持Python調(diào)試、代碼補全和交互式Python控制臺。在Eclipse中安裝PyDev非常便捷,

只需從Eclipse中選擇Help→EclipseMarketplace命令,然后搜索PyDev。單擊安裝,必要時重

啟Eclipse即可。

3)SublimeText

SublimeText是一款代碼編輯器,其開發(fā)者的夢想是“使之成為更好的文本編輯器”。Sublime

Text支持Python代碼編輯,同時兼容所有平臺,并且豐富的插件(稱之為“包”)擴展了語法

和編輯功能。SublimeText迅捷小巧,并且具有良好的兼容性。

安裝額外的Python擴展比較棘手,SublimeText中所有的包都是用Python編寫的,并且安

裝社區(qū)擴展需要直接在SublimeText中執(zhí)行Python腳本。

4)Atom

同樣兼容所有平臺的Atom被稱為“21世紀可破解的文本編輯器”。開源的Atom擁有時尚

的界面、文件系統(tǒng)瀏覽器和擴展插件市場,它是使用Electron構建的,Electron使用JavaScript、

HTML和CSS構建跨平臺的桌面應用。Python語言由一款可在Atom運行時安裝的擴展插件

支持。

5)Spyder

Spyder是一款為了數(shù)據(jù)科學工作流做了優(yōu)化的開源Python集成開發(fā)環(huán)境。它是附帶在

Anaconda軟件包管理器發(fā)行版中的,因此根據(jù)用戶的設置,有可能已經(jīng)在機器中安裝了Spyder。

Spyder引人注目的一點是其目標受眾是使用Python的數(shù)據(jù)科學家們。Spyder很好地集成了

SciPy、NumPy和Matplotlib等公共Python數(shù)據(jù)科學庫。

Spyder擁有大部分集成開發(fā)環(huán)境具有的功能,例如,具備強大語法高亮功能的代碼編輯器,

Python代碼補全,甚至是集成文件瀏覽器。

1.5第一個Python程序

1.程序的實現(xiàn)

1.3節(jié)中已經(jīng)在PythonShell的交互式編程方式下實現(xiàn)輸出“HelloWorld!”,在實際開發(fā)中

更多的是在PythonIDLE等環(huán)境下完成腳本式程序的開發(fā)。Python中腳本式程序是先按Python

的語法規(guī)則完成源程序的編寫,保存為以.py為擴展名的腳本文件,運行時再通過解釋器對腳

本文件中的語句進行解釋執(zhí)行,直到腳本執(zhí)行完畢,程序執(zhí)行完成。腳本編程的好處是方便程

序的復用。下面用IDLE實現(xiàn)該程序的腳本式程序。

(1)打開PythonIDLE,如圖1-11所示。

(2)新建文件,選擇File→NewFile命令,如圖1-12所示。

(3)打開源代碼編輯窗口,如圖1-13所示。

(4)編寫程序,注意縮進,如圖1-14所示。

·7·

圖1-11PythonIDLE圖1-12在PythonIDLE中新建文件

圖1-13源代碼編輯窗口圖1-14HelloWorld程序

(5)保存文件。選擇保存目錄(如C:\),文件名為python1.py,如圖1-15所示。

(6)運行程序,選擇Run→RunModule命令(見圖1-16),運行結果如圖1-17所示。

圖1-15保存文件圖1-16選擇運行命令

圖1-17運行結果

2.Python的基礎語法

在正式開發(fā)Python程序前首先要了解Python的一些基本語法,語法表示程序的結構或形

式,亦即表示構成語言的各個記號之間的組合規(guī)律。

·8·

第1章Python概述

Python語法中有如下一些基本規(guī)則和特殊字符。

井號(#)表示其后的字符為Python語句的注釋——單行注釋。

三個單引號(''')或者三個雙引號(""")可以把多行內(nèi)容括起來實現(xiàn)多行注釋。

換行(\n)是標準的行分隔符(通常一個語句占一行)。

反斜線(\)繼續(xù)上一行。

分號(;)將兩條語句放在一行中。

冒號(:)將復合語句的頭和體分開。

代碼塊(語句塊)用縮進的方式體現(xiàn)。

用不同的縮進深度分隔不同的代碼塊。

Python文件以模塊的形式組織。

下面進行詳細說明。

1)注釋(#、'''、""")

程序在解釋執(zhí)行過程中會忽略掉注釋中的代碼,注釋也通常用來對某段程序進行說明,供

程序員更快地讀懂程序。例如:

#這是單行注釋

'''

這是多行注釋,用三個單引號

這是多行注釋,用三個單引號

這是多行注釋,用三個單引號

'''

"""

這也是多行注釋,用三個雙引號

這也是多行注釋,用三個雙引號

這也是多行注釋,用三個雙引號

"""

2)續(xù)行(\)

一般來講,Python的相鄰語句使用換行(回車)分隔,亦即一行一條語句。如果一行語句

過長,可以使用續(xù)行符(\)分解為多行,例如:

print\

("helloworld!")

print("helloworld!")

等價。

關于續(xù)行符有如下兩種例外情況:

①一個語句不使用續(xù)行符也可以跨行書寫。在使用閉合操作符時,單一語句也可以跨多

行。例如,在含有小括號、中括號、花括號時可以多行書寫。例如:

print("我的年齡是",

21)

但須注意,這時的縮進(即使是自動的縮進)將失去語法上的作用。

·9·

②三引號內(nèi)包含的字符串也可以跨行書寫。例如:

print('''hello

world!''')

輸出結果為:

hello

world!

用三引號括起來的字符串有換行時輸出時自動換行。

說明:如果要在使用反斜線換行和使用括號元素換行之間做一個選擇,推薦使用后者,因

為這樣可讀性會更好。

3)多個語句構成代碼組(:)

縮進位置相同的一組語句形成一個語句塊,亦稱代碼塊或代碼組。像if、for、while、def

和class等復合語句,首行均以關鍵字開始,并以冒號(:)結束,該行之后的一行或多行代碼

就構成了代碼組,即語句塊。例如:

第3章將要學習的if語句:

ifa>b:

溫馨提示

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

評論

0/150

提交評論