關于我們
書單推薦
新書推薦
|
給所有人的Python(第4版)
本書由淺入深地從軟件安裝環(huán)境到基礎語法與應用來講解面向對象腳本語言Python。本書共13章,主要講解Python的語法以及Python的相關應用,*后還比較了Python
2與Python 3之間的差別,以供讀者參考。
本書既可作為Python開發(fā)入門者的自學用書,也可作為高等院校相關專業(yè)的教學參考書。
近來不以軟件開發(fā)為專業(yè)的,也就是非工程師使用Python的情況漸漸增多。本書第四版將基礎講解部分大篇幅改寫得更加易讀易懂,便于讀者入門。
本書是面向對象腳本語言Python的入門書。Python是一種在美國、歐洲、包括日本在內的亞洲各國廣為使用的一種程序設計語言。Python不僅簡潔易懂,而且是一種可以在比較嚴謹?shù)某绦蛟O計中使用的語言。近年來,在以機器學習與深度學習deep learning)為代表的人工智能基礎領域,或是數(shù)據(jù)科學(datascience)領域中,Python也作為一種常用的程序設計語言而被大家所關注。例如,Google(谷歌)、
Microsoft(微軟)等知名企業(yè)都在使用Python。
本書是第4版修訂版,從問世以來,已經過了10年。 第1版出版是在2006年,當時正是一種新的Web萌芽與腳本語言都廣受關注的時代。在歐美國家,知名的Web服務在開發(fā)時使用Python的事例很多。但是在日本,Python還沒有很高的知名度。那時作為第一本Python日語書,第1版主要是將Python的優(yōu)點廣泛傳達給了日本社會。 第2版出版時,正處于云概念被廣泛接受的時代。以虛擬機監(jiān)視器Xen、Google的云服務(cloud service)AppEngine為代表,在云領域中,Python也受到了廣泛關注。 在第3版中,以幾年前發(fā)布的Python 3為中心,大規(guī)模地修改了第2版。以Linux的包管理為代表,Python作為基礎被繼續(xù)使用。在第3版中,對革新后的新Python進行了介紹。Python 3提高了一慣性,可以更安心、更長久地使用。 接下來是第4版。第4版增加了有關近年來廣受關注的數(shù)據(jù)科學與機器學習的章節(jié)。另外,近來不以軟件開發(fā)為專業(yè)的,也就是非工程師使用Python的情況漸漸增多?紤]到這一點,本版將基礎講解部分大篇幅改寫得更加易讀易懂。 回首這10年,我認為Python是時常引導時代的先驅者。從Web開始,云以及數(shù)據(jù)科學、人工智能等,Python總是開啟新技術的起點。介紹這樣優(yōu)秀的Python,是本書最大的使命。 最后,要對審查本書的巖井雅治、太田芳行、奧野慎吾、kabihiko、木村明治、鄉(xiāng)田mariko、櫻井駿、鈴木潤、高田美紀、高野隆一、中村讓、minakawamisaki、通口千洋、福島真太郎、松澤太郎(50音順序),以及本書的編輯、參與本書出版工作的所有工作人員表達最真摯的謝意。 同時也希望,通過本書,能有更多的人喜愛Python,喜愛indent。 寫給最深愛的妻子、兒子、女兒和狗狗,同時也寫給10年后的自己
柴田淳,2000年初起開始運用Python進行軟件系統(tǒng)的委托開發(fā),參與大型網(wǎng)站和出版社的CRM、谷歌推廣網(wǎng)站的后臺等的開發(fā)。目前專注于公司服務系統(tǒng)的開發(fā)和運營。
第1章 程序設計語言Python 1
1.1 Python的魅力 1 1.1.1 Python很容易記憶 2 1.1.2 Python很容易使用 3 1.1.3 Python有廣闊的前景 4 1.2 Python(Anaconda)的下載和安裝… 6 1.2.1 什么是Anaconda 6 1.2.2 必要的學習環(huán)境7 1.2.3 在 Windows系統(tǒng)中安裝Anaconda 8 1.2.4 在macOS(OS X)系統(tǒng)中安裝Anaconda 9 1.2.5 在Linux系統(tǒng)中安裝 Anaconda 10 1.2.6 已經安裝Python的情況 11 1.2.7 安裝本家版Python 11 1.3 交互式腳本(對話型腳本) 13 1.3.1 在 Windows系統(tǒng)中啟動交互式腳本 13 1.3.2 在 macOS、Linux系統(tǒng)中啟動交互式腳本14 1.3.3 輸入Python代碼15 1.3.4 關閉交互式腳本20 1.4 在文件中編寫Python程序 20 1.4.1 使用Editor(編輯器)編寫程序21 1.4.2 保存Python程序 21 1.4.3 在 Windows系統(tǒng)中運行Python的腳本文件22 1.4.4 在 macOS、Linux系統(tǒng)中執(zhí)行Python的腳本文件 23 1.4.5 推薦的編輯器和選擇方法24 1.5 使用Jupyter Notebook 26 1.5.1 在 Windows、macOS系統(tǒng)中啟動內核 28 1.5.2 在Linux系統(tǒng)中啟動內核 28 1.5.3 使用主面板29 1.5.4 制作Notebook29 1.5.5 使用Notebook運行程序 30 1.5.6 保存Notebook 32 1.5.7 結束Notebook 33 1.5.8 使用Jupyter Notebook的tmpnb 33 1.5.9 示例代碼的運行方法34 第2章 用Python開始程序設計36 2.1 使用數(shù)值36 2.1.1 使用數(shù)值的四則運算37 2.1.2 四則運算和優(yōu)先順序38 2.2 使用變量38 2.2.1 定義變量38 2.2.2 使用變量進行計算39 2.3 使用字符串41 2.3.1 定義字符串41 2.3.2 字符串的連接42 2.3.3 復合運算符43 2.3.4 統(tǒng)一類型的Python風格 44 2.3.5 字符串與數(shù)值的轉換(類型轉換) 45 2.4 使用列表47 2.4.1 定義列表47 2.4.2 指定索引取出元素48 2.4.3 列表的連接50 2.4.4 元素的置換和刪除50 2.4.5 使用切片取出多個元素52 2.4.6 列表的列表二維數(shù)組53 2.4.7 列表的合計、最大值和最小值55 2.4.8 查看列表長度56 2.5 用for語句進行循環(huán)操作 57 2.6 用if語句進行條件分支 61 2.6.1 比較數(shù)值63 2.6.2 比較字符串63 2.6.3 檢索字符串64 2.6.4 比較列表64 2.6.5 檢索列表元素65 2.6.6 使用else語句 65 2.7 使用函數(shù)69 2.7.1 什么是函數(shù)69 2.7.2 調用函數(shù)70 2.7.3 函數(shù)的參數(shù)70 2.7.4 函數(shù)的返回值(1) 71 2.7.5 定義函數(shù)72 2.7.6 定義參數(shù)74 2.7.7 函數(shù)的返回值(2) 75 2.7.8 本地變量76 2.8 使用模塊79 2.8.1 導入模塊80 2.8.2 import語句的as 81 2.8.3 使用了from的導入 81 2.8.4 模塊的查找方法82 第3章 掌握Python的基礎83 3.1 使用字典83 3.1.1 什么是字典83 3.1.2 使用鍵取出元素84 3.1.3 使用鍵替換元素85 3.1.4 添加新的鍵與值86 3.1.5 使用鍵刪除元素87 3.1.6 確認鍵的存在88 3.1.7 使用鍵的循環(huán)89 3.2 使用set(集合) 90 3.2.1 定義set 91 3.2.2 求set的并集 91 3.2.3 求set的差集 92 3.2.4 求set的交集 92 3.2.5 求set的異或 93 3.2.6 set與列表 94 3.2.7 set與比較 94 3.3 使用元組95 3.4 if語句的應用99 3.4.1 比較運算符99 3.4.2 比較運算符與True和False 99 3.4.3 關于比較的備忘錄 100 3.4.4 復雜的比較邏輯運算 100 3.5 循環(huán)的應用 101 3.5.1 使用while語句制作循環(huán) 101 3.5.2 使用了break語句和continue語句的循環(huán)控制 103 3.5.3 循環(huán)的else 105 3.6 函數(shù)的應用 105 3.6.1 對函數(shù)定義默認參數(shù) 106 3.6.2 參數(shù)的關鍵字指定 107 3.6.3 函數(shù)和本地變量 108 第4章 熟練使用內置類型111 4.1 作為對象的內置類型概述 111 4.1.1 什么是方法 111 4.1.2 作為對象的內置類型 113 4.1.3 內置的數(shù)據(jù)類型一覽 114 4.1.4 數(shù)據(jù)類型的分類 116 4.1.5 序 列 116 4.1.6 可更改和不可更改 117 4.1.7 set類型和字典類型117 4.2 操作數(shù)值類型 118 4.2.1 十六進制的表示方法 118 4.2.2 二進制的表示方法119 4.2.3 八進制的表示方法 120 4.2.4 位運算 121 4.3 熟練使用字符串類型 121 4.3.1 字符串的替換和刪除 121 4.3.2 split()方法和join()方法 122 4.3.3 轉義序列 124 4.3.4 raw字符串 126 4.3.5 字符串中可以使用的方法 126 4.3.6 字符串的格式化 128 4.4 熟練掌握列表類型和元組類型 132 4.4.1 給列表排序 132 4.4.2 自定義排列順序 133 4.4.3 解包代入 134 4.4.4 切片的步長數(shù) 135 4.4.5 使用了切片元素的代入和刪除135 4.4.6 列表中可以使用的方法 136 4.5 熟練使用set類型 137 4.6 熟練掌握字典類型 138 4.6.1 通過序列等制作字典 138 4.6.2 將兩個字典進行組合 139 4.6.3 巧妙處理字典的鍵 139 4.6.4 靈活運用字典中的方法 140 4.7 if語句和內置類型142 4.8 for語句和內置類型142 4.8.1 熟練使用range()函數(shù) 142 4.8.2 序列和循環(huán)計數(shù)器143 4.8.3 使用兩個序列的循環(huán) 144 4.9 函數(shù)和內置類型 145 4.9.1 返回值和解包代入 145 4.9.2 在函數(shù)中接收參數(shù)列表 146 4.9.3 在函數(shù)中接收關鍵字參數(shù) 147 4.10 Python的字符串和日語 147 4.10.1 有關字符編碼的基礎知識147 4.10.2 Python和 Unicode 150 4.10.3 字節(jié)類型150 4.10.4 字符串向字節(jié)類型轉換152 4.10.5 字節(jié)類型向字符串類型轉換153 4.10.6 腳本文件的編碼指定153 4.10.7 編碼的判斷154 4.10.8 編碼和亂碼154 4.10.9 多字節(jié)字符和字符的分界156 4.11 Python的文件處理 156 4.11.1 文件和文件對象158 4.11.2 從文件中讀取160 4.11.3 寫入文件162 4.11.4 處理二進制文件162 4.11.5 文件名稱的處理163 第5章 Python與函數(shù)式程序設計 165 5.1 什么是函數(shù)式程序設計 165 5.1.1 Python的語句和表達式 167 5.1.2 Lambda表達式 167 5.2 解析式 168 5.2.1 列表解析式 169 5.2.2 列表解析式的詳細介紹 169 5.2.3 在列表解析式中使用if 170 5.2.4 字典解析式 171 5.2.5 set解析式172 5.3 使用迭代 172 5.3.1 什么是迭代 172 5.3.2 迭代和延遲評價 173 5.4 使用生成器 175 5.4.1 定義生成器函數(shù) 176 5.4.2 生成器表達式 176 5.5 高階函數(shù)和裝飾器177 5.5.1 高階函數(shù) 177 5.5.2 裝飾器 179 第6章 類與面向對象開發(fā)181 6.1 在Python中使用類181 6.1.1 對象和類 181 6.1.2 由類制作對象(實例) 182 6.1.3 使用實例 183 6.1.4 對象和實例183 6.2 制作類184 6.2.1 定義類 185 6.2.2 實例的屬性 185 6.2.3 方法的定義與初始化方法__init__() 187 6.2.4 方法與第一參數(shù)self 188 6.2.5 屬性的隱蔽性 192 第7章 類的繼承與高級面向對象功能194 7.1 繼承類 194 7.1.1 指定超類 195 7.1.2 方法的重寫 195 7.1.3 初始化方法的重寫 196 7.1.4 得到使用super()的超類 197 7.1.5 插 槽 198 7.1.6 特 征 199 7.2 使用特殊方法 200 7.3 繼承內置類型 206 第8章 模 塊209 8.1 創(chuàng)建模塊文件夾 209 8.1.1 導入模塊時的操作 210 8.1.2 僅在執(zhí)行文件時執(zhí)行的塊 211 8.1.3 類與模塊 212 8.2 模塊的層次(包) 213 8.2.1 包的本質 213 8.2.2 創(chuàng)建包 214 8.3 使用模塊時的注意事項 214 8.3.1 使用from語句導入的弊端 214 8.3.2 模塊的搜索順序 214 8.4 使用第三方模塊 215 8.4.1 模塊的搜尋方法 215 8.4.2 使用pip安裝模塊 216 8.4.3 使用conda安裝模塊 217 8.4.4 模塊的種類 217 8.4.5 手動安裝模塊 218 8.4.6 模塊的設置場所和Python的版本 218 第9章 作用域與對象221 9.1 命名空間、作用域221 9.1.1 作用域的規(guī)則 222 9.1.2 類、實例的作用域224 9.2 純粹面向對象語言Python 225 9.2.1 對象與屬性 225 9.2.2 魔法函數(shù)dir()226 9.2.3 作為屬性的方法 227 9.2.4 全部都是對象 228 9.2.5 對象與類型228 9.2.6 對象與屬性 230 9.2.7 類、模塊與屬性231 9.2.8 對象和變量 231 9.2.9 對象與命名空間 232 第10章 異常處理 234 10.1 Python的異常處理 234 10.1.1 異常的發(fā)生234 10.1.2 捕獲異常235 10.1.3 with語句 237 10.1.4 異常與追溯237 10.1.5 引發(fā)(raise)異常238 10.1.6 顯示追溯238 10.2 常見錯誤或異常與對策239 10.2.1 讀取程序時發(fā)生的錯誤(SyntaxError) 240 10.2.2 程序執(zhí)行中發(fā)生的錯誤(Exception) 240 第11章 使用標準庫 243 11.1 標準庫的導入243 11.2 數(shù)據(jù)結構244 11.2.1 保持添加時順序的collections.OrderedDict 244 11.2.2 帶有默認值的字典collections.defaultdict 245 11.2.3 協(xié)助列表sort的bisect 246 11.3 處理日期數(shù)據(jù)的datetime、calendar 247 11.3.1 日期與時刻和字符串249 11.3.2 日期與時刻的運算和比較250 11.3.3 使用datetime.date類的方法 251 11.3.4 使用datetime.datetime類的方法 252 11.3.5 使用calendar模塊 252 11.4 正則表達式re 254 11.4.1 re模塊 254 11.4.2 Python的正則表達式 255 11.4.3 正則表達式的pattern字符串 255 11.4.4 使用正則表達式對象257 11.4.5 將模式傳遞給參數(shù),進行正則表達式的處理 259 11.4.6 使用匹配對象260 11.4.7 正則表達式的示例261 11.5 獲取操作系統(tǒng)參數(shù)的sys 261 11.5.1 獲取命令行的參數(shù)261 11.5.2 程序的結束262 11.5.3 其他函數(shù)與變量262 11.6 獲得及操作文件、進程等依賴 OS信息的OS 262 11.6.1 獲取、操作與進程相關的信息 262 11.6.2 文件與目錄的操作263 11.6.3 進程管理265 11.6.4 在交換平臺使用了路徑的操作266 11.7 使用數(shù)學函數(shù)mathrandom 267 11.7.1 math數(shù)學函數(shù)模塊 267 11.7.2 random生成隨機數(shù) 269 11.8 獲取因特網(wǎng)上數(shù)據(jù)的urllib 270 11.8.1 從 Web或FTP中獲取文件271 11.8.2 使用request.urlretrieve()函數(shù)的示例代碼 271 11.8.3 從 Web或FTP中讀取數(shù)據(jù)272 11.8.4 在urlopen()返回的對象中可以使用的方法 272 11.8.5 BASIC認證 273 11.8.6 用POST方式傳輸數(shù)據(jù) 274 11.8.7 其他函數(shù)275 11.9 創(chuàng)建字符串庫虛擬文件的io.StringIO 276 11.10 CSV(逗號分隔值)文件的操作 277 11.11 對象持久化與序列化shelvepickle 278 11.11.1 將字典持久化的shelve 279 11.11.2 執(zhí)行對象持久化與序列化的pickle 280 11.12 處理JSON數(shù)據(jù)的json 282 11.12.1 將JSON轉換為Python的數(shù)據(jù)類型283 11.12.2 Python的數(shù)據(jù)類型轉換為JSON 283 11.12.3 json的使用示例 284 第12章 Python與數(shù)據(jù)科學 285 12.1 NumPy與 matplotlib 285 12.1.1 所謂的 NumPy與 matplotlib 285 12.1.2 使用NumPy 287 12.1.3 使用 matplotlib 290 12.2 使用NumPy 291 12.2.1 生成NumPy的array 291 12.2.2 使用數(shù)組的運算293 12.2.3 訪問元素295 12.2.4 數(shù)組的連接295 12.2.5 復制數(shù)組296 12.3 使用 matplotlib 296 12.3.1 使用plot()來繪制圖表297 12.3.2 控制plot()的繪制299 12.3.3 加入字符300 12.4 將日本的人口可視化300 12.4.1 讀取人口數(shù)據(jù)301 12.4.2 繪制人口金字塔303 12.4.3 將圖表繪制在交互式中304 12.4.4 推算未來人口數(shù)量306 12.5 Python與機器學習 310 12.5.1 用機器學習進行數(shù)值的預測311 12.5.2 機器學習的算法315 12.5.3 由姓名來判定性別316 12.5.4 機器學習、數(shù)據(jù)科學與Python 320 12.5.5 深度學習的登場和未來321 第13章 Python 2 323 13.1 Python 3與Python 2的不同點323 13.1.1 在Python 3中被削減掉的功能 324 13.1.2 在Python 2.7中可以使用的Python 3功能 324 13.1.3 在Python 3中改變了的功能 325 13.1.4 模塊的再配置、名稱變更 329 13.2 從Python 2到Python 3的遷移 330 13.3 結束語331
你還可能感興趣
我要評論
|