Python語言程序設計
-
【作 者】張雙獅
【I S B N 】978-7-5170-9203-2
【責任編輯】石永峰
【適用讀者群】本專通用
【出版時間】2020-12-23
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】348
【千字數】548
【印 張】21.75
【定 價】¥56
【叢 書】普通高等教育數據科學與大數據技術專業教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書圍繞數據的表示、存取、計算、分析和可視化等內容分兩部分詳細介紹Python語言程序設計:Python程序設計基礎部分(第1章至第6章、第10章)主要介紹Python作為一門高級編程語言所涉及的語法知識、控制結構、函數與模塊、類和對象、圖形界面設計,并穿插了計數、累加、連乘等數值計算常用算法內容;Python數據管理與分析部分(第7章至第9章、第11章)主要介紹數據文件操作、數據庫操作、數據分析和數據可視化等知識。
本書按照首先論道、繼而論理、然后操作的順序,從哲學視角看程序設計,使讀者在認識物質世界規律的過程中了解計算機的特點、程序設計的特點和人機交互的規律,在認識世界、解釋世界和改造世界的實踐中掌握Python編程特點、技術和技巧,學會結構化程序設計、面向對象程序設計、人機交互界面設計和數據分析等方面的編程技術。
本書可供大數據專業學生學習程序設計使用,也可作為高等院校“Python程序設計”課程教材,還可供數據分析人員參考。
內容實用——理論與實踐結合,重點突出應用
體系完善——構建完整的大數據專業解決方案
產教融合——高校企業共參與,對標行業標準
資源豐富——微課、課件、教案、源碼、答案
隨著國家大數據戰略的深入實施,各行業智慧化建設急需數據分析人才和智能應用人才。智慧化簡單來說是一個以機器替換人力的過程,而機器的“靈魂”是程序。Python已經成為公認的驅動大數據智能應用的主流編程語言。Python程序設計的書籍已經琳瑯滿目,每一本書都凝聚了作者對Python的理解和對程序設計的認識,都是作者編程開發和教學經驗的總結,都折射出作者的專業背景。由于大數據專業學生對程序設計的要求不是很高,但又需要具備一定的計算思維能力,熟悉用程序進行數據分析的一般流程,因此程序設計教材要言不甚深、文不甚俗,既要覆蓋相關技術,又不能面面俱到,注重對問題的分析和解釋,用程序表達算法。鑒于此,我們編寫了本書。
本書每一章的標題都以Python開頭,凸顯Python在各個部分都有其獨特的編程理念和方法。與其他高級編程語言如C、C++和Java等相比,Python在數據的表示、處理和可視化方面都有絕對的優勢。有編程基礎的學習者在學習Python時最好能忘掉以往程序設計語言的語法,徹底轉變觀念,以全新的姿態融入到Python的編程特點和規律之中。如變量定義、數據類型、數據結構、控制結構、類和對象、文件訪問、數據分析和可視化,每一部分都有其特別之處,都值得我們重新認識,重新使用,重新熟悉。每一章開始的思維導圖都是對本章技術脈絡的梳理,開門見山地給學習者展示本章的知識和技術體系,以便學習者在學習過程中始終能保持思路清晰和整體把握。每一章開頭的本章導讀都是編者多年來程序開發與設計教學經驗的提煉與升華,都是對程序設計的理解和感悟,值得學習者深入領會。每一章開頭的本章要點都是要求學習者深入理解的重要知識和熟練掌握的關鍵技術。每一章的小結都是對本章要點的具體解釋,供學習者復習查詢。
本書為河北省高等教育教學改革研究與實踐項目“新工科背景下警務大數據應用專業人才培養模式與教學實踐研究”(編號:2018GJJG450)的階段性成果。
下面是本書的體系結構圖。
第1章Python編程初步。學習本章,要了解Python作為一種計算機程序設計腳本語言,結合了解釋性、編譯性和互動性的特點;了解在Linux和Windows中安裝Python的方法;了解IDLE、PyCharm和Jupyter三種常用Python程序編輯環境。工欲善其事,必先利其器,通過對本章的學習,學習者可擁有一個強大的編程工具,從此開啟數據分析編程之旅。
第2章Python語言基礎。Python作為一門與計算機交流的編程語言,有著跟自然語言相似的特點:字、詞、句、段落、篇章,以及相應的行文語法規則。學習本章,要理解程序行文的字詞句,主要包括基本數據類型、常量和變量、運算符和表達式;理解程序的段落和篇章,主要包括常用內置函數、庫函數和系統函數的使用;掌握程序的語法規則,主要包括常用的變量定義和標識符命名規則、語句組織成文編碼規則等。這些都是程序設計的基礎,學習者只有對此熟練掌握后,才能在后續的學習中得心應手。
第3章Python組合數據類型。組合數據類型是Python語言區別于其他高級編程語言的一大特色,通過組合數據類型,省去了其他語言各種復雜數據結構的設計,給編程人員帶來了極大的方便,這也是Python流行于數據分析領域的原因之一。學習本章,要熟練掌握Python組合數據類型(列表、元組、字符串、字典、集合)的創建、訪問和常見基本操作,以及序列解包功能。
第4章 Python控制結構。針對物質隨時間由簡單向復雜、由低級向高級發展的順序,Python語言有相應的順序結構語句;針對物質運動發展的條件性,Python語言有相應的選擇結構語句;針對物質運動的波浪式前進螺旋式上升規律,Python語言有相應的循環結構語句。學習本章,要從馬克思主義自然哲學視角理解Python語言在描述物質運動規律時的表達方式;掌握用Python語言描述常用算法,解決一些基本問題的方式。
第5章 Python函數與模塊。有些經常用到的能實現特定功能的代碼塊,我們總是不希望每次用到時都重寫一遍,甚至不希望復制一遍,但又想重復使用。Python里這些經常重用的代碼塊以函數(Function)的形式被定義,每一次復用被稱為函數調用,計算機依然要執行重用的代碼。學習本章,要理解函數的概念,掌握定義函數的方法,深刻理解函數調用中參數的傳遞(值傳遞、地址傳遞),理解變量的作用域(變量的作用范圍或變量的生命周期),理解函數集合模塊、包等概念,掌握模塊和包的創建及使用方法。
第6章 Python面向對象程序設計。面向過程的程序設計方法難以保證程序的安全性和代碼的可重用性,而面向對象的程序設計方法能夠更好地提高大型程序的質量和開發效率,增強程序的安全性和提高代碼的可重用性。學習本章,重在理解面向對象程序設計思想、類和對象的概念,了解構造函數、析構函數、類的各種屬性和方法,還有面向對象程序設計的三大特性,即封裝性、繼承性和多態性。
第7章 Python文件操作。當輸入輸出的數據量較大或需要長期保存時,一般會把數據放到文件中。學習本章,要了解數據在計算機中的表示、文件的組成和分類;熟練掌握程序對不同結構、不同類型文件的讀寫方法;了解程序對文件的主要系統操作,包括對文件夾的操作和文件的操作,如創建、復制、更名、刪除等;了解數據組織和管理的主要內容,一維、二維、三維數據組織;熟練掌握CSV文件、Excel文件和JSON文件的讀寫方法。
第8章 Python數據庫操作。不論是開發桌面程序還是開發Web程序,都不可避免地要涉及數據庫的管理和操作。學習本章,要掌握Python操作數據庫的基本概念、方法、工具和流程,熟悉Python操作嵌入式數據庫SQLite,常見關系型數據庫MySQL、Access和SQL Server,非關系型數據庫MengoDB等的方法。
第9章 Python數據分析初步。在數據分析領域,NumPy和Pandas是應用非常廣泛的兩個第三方庫。學習本章,要了解NumPy的核心數據結構ndarray的創建、復制等基本操作,NumPy的內置操作函數的一些簡單使用方法和數值計算操作;了解Pandas庫的兩種核心數據類型,即Series和DataFrame,熟悉DataFrame的相關操作和Pandas對不同格式文件的讀寫操作,掌握數據分析的基本思路和流程。
第10章 Python圖形界面編程。學習本章,要掌握用Tkinter進行圖形界面程序編寫的流程和方法,包括界面布局和控制、界面上圖形控件的放置、屬性的設置、事件響應的編寫;掌握Tkinter庫及其子庫中常用組件和對象的使用。
第11章 Python數據可視化。數據可視化是數據探索性分析和分析結果直觀解釋的重要手段,是大數據專業的重要課程。學習本章,要掌握用Matplotlib進行Python數據可視化的基本方法;掌握數據可視化的實現流程、分析過程,以及創建詞云和展示詞頻等實戰技術。
本書由張雙獅任主編(負責統稿和定稿工作),陳蕾、劉曉彬、賈玲、張立紅、吳春穎、王娟任副主編,編寫分工如下:劉曉彬編寫第1章和第11章,賈玲編寫第2章和第3章,張雙獅編寫第4章和第8章,王娟編寫第5章,吳春穎編寫第6章,陳蕾、張雙獅共同編寫第7章和第10章,張立紅編寫第9 章。
在本書編寫過程中,編者得到了大量幫助:中國人民警察大學劉義祥副校長、數據警務技術專業負責人蘭月新老師對本書編寫提出良好建議;Python官網、Python數據分析和可視化庫官網、CSDN、菜鳥教程、博客園、C語言中文網等網站及其社區熱心博主們的精彩且超有參考價值的文章;中國水利水電出版社萬水分社楊慶川社長對大數據叢書出版的支持、策劃和建議,萬水分社石永峰副總編輯的耐心指導和細致校對;河北大數據聯盟主席安志遠教授的熱心組織;大數據聯盟兄弟院校老師們對本書編寫提出寶貴意見和建議。
由于作者水平有限,加之時間倉促,書中不妥之處在所難免,懇請讀者批評指正。
編者
2020年10月
1.1 Python概述 2
1.1.1 Python的發展歷程 3
1.1.2 Python的特點 6
1.1.3 Python的應用領域 8
1.2 Python的安裝 9
1.2.1 在Linux下安裝Python 9
1.2.2 在Windows下安裝Python 11
1.2.3 安裝和管理Python擴展包 13
1.3 Python的開發環境 15
1.3.1 IDLE 16
1.3.2 PyCharm 18
1.3.3 Anaconda 24
本章小結 34
習題1 35
第2章 Python語言基礎 38
2.1 數據類型 39
2.1.1 數值類型 39
2.1.2 字符串(string) 41
2.1.3 數據類型的轉換 42
2.2 變量和常量 43
2.2.1 變量 43
2.2.2 常量 46
2.3 運算符和表達式 46
2.3.1 算術運算符 46
2.3.2 關系運算符 47
2.3.3 邏輯運算符 48
2.3.4 賦值運算符 48
2.3.5 位運算符 48
2.3.6 成員運算符 49
2.3.7 身份運算符 50
2.3.8 運算符優先級規則 50
2.3.9 表達式 51
2.4 常用系統函數 51
2.4.1 常用內置函數 51
2.4.2 常用標準庫函數 55
2.5 代碼編寫規則 58
本章小結 59
習題2 59
第3章 Python組合數據類型 61
3.1 組合數據類型簡介 62
3.2 列表 63
3.2.1 列表的創建 63
3.2.2 訪問列表元素 63
3.2.3 列表切片 64
3.2.4 修改列表元素 65
3.2.5 添加列表元素 65
3.2.6 刪除列表元素 66
3.2.7 檢索列表元素 67
3.2.8 統計列表元素 67
3.2.9 列表元素排序 67
3.2.10 列表常用函數 68
3.2.11 列表推導式 69
3.3 元組 71
3.3.1 元組的創建 71
3.3.2 訪問元組元素 72
3.3.3 元組的基本操作 72
3.3.4 生成器推導式 73
3.4 字符串 74
3.4.1 字符串的基本操作 74
3.4.2 字符串的常用方法 75
3.4.3 字符串的格式化 79
3.5 字典 80
3.5.1 字典的創建 81
3.5.2 訪問字典元素 82
3.5.3 字典元素的添加與修改 83
3.5.4 字典元素及字典的刪除 83
3.5.5 字典推導式 84
3.6 集合 85
3.6.1 集合的創建和刪除 85
3.6.2 訪問集合元素 86
3.6.3 添加集合元素 87
3.6.4 刪除集合元素 87
3.6.5 集合運算 88
3.6.6 集合推導式 89
3.7 序列解包 90
本章小結 91
習題3 92
第4章 Python控制結構 94
4.1 順序結構 96
4.1.1 輸入 96
4.1.2 輸出 97
4.1.3 計算 99
4.2 選擇結構 101
4.2.1 單分支選擇結構 101
4.2.2 雙分支選擇結構 103
4.2.3 多分支選擇結構 104
4.2.4 選擇嵌套 106
4.2.5 判斷條件及組合 107
4.2.6 選擇結構程序設計舉例 107
4.3 循環結構 109
4.3.1 遍歷循環for 109
4.3.2 無限循環 while 113
4.3.3 無限循環的擴展模式else 116
4.3.4 循環嵌套 117
4.3.5 兩種循環的比較 118
4.3.6 循環控制 break和continue 118
4.4 程序的異常處理 119
4.5 控制結構應用 120
4.5.1 打印輸出控制 120
4.5.2 遞推計算 122
本章小結 126
習題4 127
第5章 Python函數與模塊 128
5.1 Python函數 129
5.1.1 函數的定義 129
5.1.2 函數的調用 130
5.2 Python函數參數傳遞 131
5.2.1 值傳遞和地址傳遞 131
5.2.2 位置參數 132
5.2.3 關鍵字參數 133
5.2.4 默認參數 134
5.3 Python變量的作用域 135
5.3.1 局部變量 135
5.3.2 全局變量 136
5.4 Python模塊和包 137
5.4.1 模塊化程序設計 137
5.4.2 模塊的導入和使用 138
5.4.3 Python中的包 140
本章小結 141
習題5 142
第6章 Python面向對象程序設計 143
6.1 面向對象概述 144
6.2 類與對象 145
6.2.1 類與實例化 145
6.2.2 構造函數與析構函數 147
6.2.3 類的屬性 148
6.2.4 類的方法 152
6.3 面向對象的三大特性 155
6.3.1 繼承性 155
6.3.2 封裝性 158
6.3.3 多態性 158
6.4 綜合應用 160
本章小結 163
習題6 163
第7章 Python文件操作 165
7.1 文件基礎知識 166
7.1.1 字符的編碼方法 166
7.1.2 文件的類型 167
7.2 文件讀寫 168
7.2.1 文本文件操作 169
7.2.2 二進制文件操作 171
7.2.3 文件操作相關函數 172
7.3 文件的系統操作 175
7.3.1 os、os.path和shutil模塊 175
7.3.2 目錄操作 178
7.3.3 文件操作 184
7.4 數據的組織與管理 186
7.4.1 維度的概念 186
7.4.2 CSV文件操作 186
7.4.3 Excel文件操作 188
7.4.4 JSON文件操作 189
本章小結 190
習題7 190
第8章 Python數據庫操作 193
8.1 Python操作數據庫基礎 194
8.1.1 數據庫操作基本概念 194
8.1.2 數據庫操作基本內容 196
8.1.3 數據庫編程語言SQL 196
8.1.4 Python DB API 202
8.2 Python操作SQLite 204
8.2.1 SQLite簡介 204
8.2.2 SQLite數據庫的創建與連接 205
8.2.3 SQLite數據操作與處理 205
8.3 Python操作其他關系型數據庫 209
8.3.1 Python操作MySQL 209
8.3.2 Python操作Access 212
8.3.3 Python操作SQL Server 215
8.4 Python操作非關系型數據庫 218
8.4.1 非關系型數據庫基礎 219
8.4.2 Python操作MongoDB 219
本章小結 222
習題8 223
第9章 Python數據分析初步 225
9.1 NumPy基礎 226
9.1.1 NumPy基本數據結構 226
9.1.2 ndarray常見操作 231
9.1.3 內置操作函數 235
9.2 Pandas基礎 240
9.2.1 Pandas數據結構 241
9.2.2 Pandas文件操作 243
9.2.3 DataFrame常見操作 244
9.3 Pandas數據分析實戰 250
9.3.1 數據集簡介 251
9.3.2 數據集分析 251
9.4 數據分析法實踐 254
9.4.1 數據分析流程 254
9.4.2 數據分析案例 255
本章小結 265
習題9 265
第10章 Python圖形界面編程 268
10.1 Python GUI編程概述 269
10.1.1 Tkinter GUI 269
10.1.2 其他GUI庫簡介 269
10.1.3 GUI設計流程 270
10.2 Tkinter概述 270
10.2.1 Tkinter模塊的組成 270
10.2.2 使用Tkinter創建GUI程序的步驟 271
10.2.3 Tkinter的主窗口 271
10.3 窗體布局 273
10.3.1 pack()方法 273
10.3.2 grid()方法 274
10.3.3 place()方法 275
10.3.4 框架類控件 277
10.4 常用控件 279
10.4.1 常用控件及其共同屬性 279
10.4.2 文本輸入/輸出相關控件 280
10.4.3 按鈕 281
10.4.4 單選按鈕和復選框 282
10.4.5 列表框和組合框 285
10.4.6 滑塊 288
10.4.7 對話框 290
10.4.8 菜單 296
10.5 事件處理 299
10.5.1 事件 299
10.5.2 事件綁定 300
本章小結 302
習題10 302
第11章 Python數據可視化 305
11.1 Matplotlib 306
11.1.1 繪制函數曲線 307
11.1.2 繪制散點圖 314
11.1.3 繪制餅狀圖 317
11.1.4 繪制帶有中文標簽和圖例的圖 318
11.1.5 繪制圖例標簽中帶有公式的圖 320
11.1.6 多窗體和子窗體 322
11.1.7 繪制三維參數曲線 325
11.1.8 繪制三維圖形 327
11.2 創建詞云 329
11.3 可視化案例分析 331
本章小結 333
習題11 334
參考文獻 337
參考資料 338
- 輸水管線工程風險管理 [張勇 黨亥生 著]
- 民用航空飛機標準線路施工 [主編 王志敏 陳明]
- 不息的水脈—大運河講談錄 [趙珩 著]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 三峽梯級電站水資源決策支持系統研究與開發 [姚華明 潘紅忠 湯正]
- 海南黎族民俗文化鑒賞 [龐國華 著]
- 石墨烯在太赫茲及中紅外頻段電磁器件設計中的應用 [李艷秀 莊華偉 著]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 辦公自動化高級應用 [陳萍 朱曉玉]
- 信息處理技術員考試32小時通關 [薛大龍]
- 電子產品設計案例教程(微課版)—基于嘉立創EDA(專業版) [王靜 莫志宏 陳學昌 丁紅]
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- Web技術開發教程(基于.NET開源MVC框架) [王合闖 韓紅玲 王青正 陳海蕊]
- 商務英語翻譯教程(筆譯)(第四版) [主編 王軍平]
- 智慧零售技術與應用 [洪旭 著]
- 建設工程法規實務 [主編 余瀅]
- 商務秘書理論與實務(第三版) [主編 張同欽]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 信息系統項目管理師章節習題與考點特訓(第二版) [主編 薛大龍]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- SwiftUI完全開發 [李智威 著]
- 網絡規劃設計師備考一本通 [夏杰 編著]