TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
瘋狂Python講義(簡體書)
滿額折
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)
瘋狂Python講義(簡體書)

瘋狂Python講義(簡體書)

人民幣定價:118 元
定  價:NT$ 708 元
優惠價:87616
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:18 點
相關商品
商品簡介
目次

商品簡介

本書全面而深入介紹了Python編程的相關內容,全書內容大致可分為四個部分,第一部分系統講解了Python的基本語法結構、函數編程、類和對象、模塊和包、異常處理等;第二部分主要介紹Python常用的內置模塊和包,這部分包括正則表達式支持IO編程、數據庫編程、併發編程、網絡通信編程等內容;第三部分主要介紹Python開發工程化方面的內容;第四部分則屬￿“Python項目實戰”,這部分通過項目介紹了Python遊戲開發、大數據展示、網絡爬蟲等熱門技能,尤其是網絡爬蟲和大數據展示,均是當下Python最熱的就業崗位。

前 言

創作本書純屬偶然,起因是我兒子想學編程。當他想報編程興趣班時,居然沒報上、滿額了,而他是一個對生活充滿好奇的小孩,望著他滿是失落的眼睛,我想不如我來教吧,畢竟我曾經教了那麼多別人的孩子。
我的想法是:挑一門上手足夠容易的語言來教,畢竟他只是一個8歲的小孩。首先排除了Java和C,雖然我自己用這兩種語言比較多,但對於小孩來說,上手它們顯得有些枯燥;也考慮過Swift或Kotlin,能迅速帶著做點手機小遊戲比較酷,後來又覺得搭建運行環境有點費事;還是選一種能解釋執行的腳本語言吧,我想到了Python或Ruby,後來又瞭解到那個興趣班教的就是Python,那就選Python吧。
於是,他開始了自己的Python學習之旅。而我完全被困住了:每當他遇到一點問題就要來問我。這肯定不行,得找本書讓他自己看,這樣他就不用來煩我了。我是一個非常挑剔的人,找了不少書,卻發現很少有合適的――有些書上手簡單,但完全沒有按照Python本身的知識體系講解,單純地為了簡單而簡單;有些書略微系統一些,卻講得晦澀難懂。典型來說,僅僅一個變量的概念,幾乎沒有一本書能通俗地講明白。實際上,初學者並不需要知道變量的概念定義,他只要把變量當成一個小的“容器”,懂得對變量賦值就是把東西“裝入”變量即可。那麼我還是自己寫一本吧,畢竟我曾經為別人寫了那麼多書。
創作這本書時,我有兩點考慮。
1. 講解要儘量通俗,避免搞那些晦澀的概念
編程,首要的是能動手編,讓簡單的程序跑起來。動手編得多了,那些概念的意義自然就浮現出來了。就像一個外星人來到地球,從未見過桌子,找個人一直給他講桌子的概念,要他務必先理解桌子的概念,外星人的感覺一定是非常困惑;嘗試用不同的方法:找一堆桌子放在一起,一張桌子、一張桌子給他看,讓他在桌子上寫字、用電腦、吃飯,甚至把桌子拆開給他看,相信外星人很快就能理解“什麼是桌子”了。對於編程初學者而言,他們何嘗不是剛來到地球的外星人?
2. 知識體系要完善,而且遵循Python內在的邏輯
一直以來,我寫的書通常比較厚、內容也比較多。這和我挑剔的個性有關:既然做一件事情,當然要盡力做好它;否則乾脆別做。一門工業級的編程語言,它不是玩具,它本身有那麼多的知識點。不管你學還是不學,編程語言本身的內容就在那裡!不管作者寫還是不寫,編程語言本身的內容就在那裡。我寫書總會儘量做到“夠用”,起碼認真學完這本書之後,不會隨便遇到一個編程問題就只能問百度。
既要有完備的知識體系,又要詳細講透這些內容,書的篇幅自然就多了。同樣的知識內容,一本厚厚的、講解細緻的圖書,和一本薄薄的、浮光掠影的圖書,哪本更容易看懂?
在知識內容相同的前提下,如果看不懂一本內容豐富、講解細緻的書,看一本薄薄的、浮光掠影的圖書反而能看懂?這完全沒道理。
但有些讀者確實這樣說過,這一點我也能理解,存在“鴕鳥心態”的人,他並不是第一個:看不到的就當它不存在。有些書之所以薄,無非是兩個知識點不講:這也不講,那也不講!讀者閱讀的時候固然是輕鬆,因為內容少呀。就像學數學,如果只教一加一等於二,當然講得簡單、學得輕鬆;但等到真正做事時才發現:啊?還有二加三等於五?數學還有乘法?還有除法?然後發現這也不會,那也看不懂,後果就是遇到問題就上百度。這就是有些所謂的開發者,他們是“面向百度”編程的。這些開發者往往哀歎:做程序員太累了,一個問題往往要調半天甚至一天,其實他們根本不是調試,只是在找別人的代碼、試別人的代碼,運氣好找到了合適的代碼,問題就解決了;找不到合適的代碼就只能哀歎了。
正因為基於以上兩點考慮進行創作,因此初學者上手本書的門檻比較低,大部分讀者都能迅速地通過學習本書內容寫出自己的Python程序、運行自己的Python程序;但要堅持把本書學完也需要一定的毅力:書中內容確實比較多,而且後面內容更偏向實際應用開發。
編程圖書不僅是用來“看”的,更是需要動手“練”的,正如先聖王陽明所倡導的:知行合一。學習本書需要讀者認真練習書中每個示例程序,還需要讀者認真完成全書在各章節後所配的110道Python練習題(面試題),如果讀者需要獲取關於課後習題的解決方法、編程思路,可以登錄http://www.crazyit.org站點或關注“瘋狂圖書”微信公眾號(拿出手機掃描封面勒口處的二維碼)。
本書有什麼特點
本書並不是一本簡單的Python入門教材,雖然本書上手門檻很低,但本書的知識體系很豐富。總結起來,本書具有如下三個特點。
1. 講解通俗,上手門檻低
創作本書的最初目的決定了本書的上手門檻,本書不會故弄玄虛地糾纏於晦澀的概念,而是力求用淺顯易懂的比喻引出概念、用口語化的方式介紹編程、用清晰的邏輯解釋思路。
為了降低讀者閱讀的難度,書中代碼的注釋非常詳細,幾乎每兩行代碼就有一行注釋。本書所有程序中關鍵代碼以粗體字標出,也是為了幫助讀者能迅速找到這些程序的關鍵點。
2.案例驅動,引爆編程激情
本書不是知識點的鋪陳,而是致力於將知識點融入實際項目的開發中,所以書中涉及大量Python案例:五子棋遊戲、畫圖板、桌面彈球、合金彈頭、大數據展示、各國人均GDP對比、基於爬蟲的招聘熱點分析、基於爬蟲的高清圖片下載、基於Scrapy+Selenium的微博登錄……希望讀者通過編寫這些程序找到編程的樂趣。
3.知識體系完備,直面企業開發實戰
雖然本書在講解上力求簡單,但本書內容並不簡單,全書知識體系完備且系統,不僅全方位地覆蓋Python語言本身的語法,而且覆蓋大數據展示、爬蟲等Python的熱門技術,這些內容能帶領讀者直面企業開發實戰。
本書寫給誰看
如果你僅僅想對Python有所涉獵,那麼本書並不適合你;如果小朋友有興趣學習本書,可先引導他閱讀本書前半部分;如果你想全面掌握Python編程,並使用Python解決大數據分析、網絡爬蟲等實際企業開發項目,那麼你應該選擇本書,並認真學完此書。希望本書能引爆你內心潛在的編程激情,讓你廢寢忘食。


2018-09-20

目次

目 錄

第1章 Python語言概述和開發環境 1
1.1 Python簡介 2
1.1.1 Python簡史 2
1.1.2 Python的特點 3
1.2 Python程序運行機制 3
1.3 開發Python的準備 4
1.3.1 在Windows上安裝Python 4
1.3.2 在Linux上安裝Python 6
1.3.3 在Mac OS X上安裝Python 7
1.4 第一個Python程序 7
1.4.1 編輯Python源程序 7
1.4.2 使用IDLE運行Python程序 8
1.4.3 使用命令行工具運行Python程序 8
1.5 交互式解釋器 10
1.6 本章小結 11
本章練習 11

第2章 變量和簡單類型 12
2.1 單行注釋和多行注釋 13
2.2 變量 14
2.2.1 Python是弱類型語言 14
2.2.2 使用print函數輸出變量 15
2.2.3 變量的命名規則 16
2.2.4 Python的關鍵字和內置函數 17
2.3 數值類型 18
2.3.1 整型 18
2.3.2 浮點型 20
2.3.3 複數 20
2.4 字符串入門 21
2.4.1 字符串和轉義字符 21
2.4.2 拼接字符串 22
2.4.3 repr和字符串 22
2.4.4 使用input和raw_input獲取用戶輸入 23
2.4.5 長字符串 24
2.4.6 原始字符串 24
2.4.7 字節串(bytes) 25
2.5 深入使用字符串 27
2.5.1 轉義字符 27
2.5.2 字符串格式化 27
2.5.3 序列相關方法 29
2.5.4 大小寫相關方法 30
2.5.5 刪除空白 32
2.5.6 查找、替換相關方法 32
2.5.7 分割、連接方法 34
2.6 運算符 34
2.6.1 賦值運算符 34
2.6.2 算術運算符 35
2.6.3 位運算符 37
2.6.4 擴展後的賦值運算符 40
2.6.5 索引運算符 40
2.6.6 比較運算符與bool類型 40
2.6.7 邏輯運算符 41
2.6.8 三目運算符 42
2.6.9 in運算符 44
2.6.10 運算符的結合性和優先級 44
2.7 本章小結 45
本章練習 45

第3章 列表、元組和字典 46
3.1 序列簡介 47
3.1.1 Python的序列 47
3.1.2 創建列表和元組 47
3.2 列表和元組的通用用法 48
3.2.1 通過索引使用元素 48
3.2.2 子序列 48
3.2.3 加法 49
3.2.4 乘法 49
3.2.5 in運算符 50
3.2.6 長度、最大值和最小值 50
3.2.7 序列封包和序列解包 51
3.3 使用列表 52
3.3.1 創建列表 52
3.3.2 增加列表元素 53
3.3.3 刪除列表元素 54
3.3.4 修改列表元素 55
3.3.5 列表的其他常用方法 56
3.4 使用字典 58
3.4.1 字典入門 58
3.4.2 創建字典 58
3.4.3 字典的基本用法 59
3.4.4 字典的常用方法 60
3.4.5 使用字典格式化字符串 63
3.5 本章小結 63
本章練習 64

第4章 流程控制 65
4.1 順序結構 66
4.2 if分支結構 66
4.2.1 不要忘記縮進 67
4.2.2 不要隨意縮進 69
4.2.3 不要遺忘冒號 70
4.2.4 if條件的類型 70
4.2.5 if分支的邏輯錯誤 71
4.2.6 if表達式 72
4.2.7 pass語句 72
4.3 斷言 73
4.4 循環結構 73
4.4.1 while循環 73
4.4.2 使用while循環遍歷列表和元組 74
4.4.3 for-in循環 75
4.4.4 使用for-in循環遍歷列表和元組 76
4.4.5 使用for-in循環遍歷字典 77
4.4.6 循環使用else 78
4.4.7 嵌套循環 79
4.4.8 for表達式 80
4.4.9 常用工具函數 82
4.5 控制循環結構 83
4.5.1 使用break結束循環 83
4.5.2 使用continue忽略本次循環的剩下語句 85
4.5.3 使用return結束方法 85
4.6 牛刀小試 86
4.6.1 數字轉人民幣讀法 86
4.6.2 繞圈圈 87
4.6.3 控制台五子棋 89
4.6.4 控制台超市系統 90
4.7 本章小結 94
本章練習 94

第5章 函數和lambda表達式 97
5.1 函數入門 98
5.1.1 理解函數 98
5.1.2 定義函數和調用函數 99
5.1.3 為函數提供文檔 100
5.1.4 多個返回值 100
5.1.5 遞歸函數 101
5.2 函數的參數 102
5.2.1 關鍵字(keyword)參數 102
5.2.2 參數默認值 103
5.2.3 參數收集(個數可變的參數) 105
5.2.4 逆向參數收集 106
5.2.5 函數的參數傳遞機制 107
5.2.6 變量作用域 111
5.3 局部函數 113
5.4 函數的高級內容 114
5.4.1 使用函數變量 115
5.4.2 使用函數作為函數形參 115
5.4.3 使用函數作為返回值 116
5.5 局部函數與lambda表達式 117
5.5.1 回顧局部函數 117
5.5.2 使用lambda表達式代替局部函數 118
5.6 本章小結 119
本章練習 119

第6章 類和對象 120
6.1 類和對象 121
6.1.1 定義類 121
6.1.2 對象的產生和使用 122
6.1.3 對象的產生和使用 123
6.1.4 實例方法和自動綁定self 124
6.2 方法 126
6.2.1 類也能調用實例方法 126
6.2.2 類方法與靜態方法 128
6.2.3 @函數裝飾器 128
6.2.4 再論類命名空間 131
6.3 成員變量 131
6.3.1 類變量和實例變量 131
6.3.2 使用property函數定義屬性 134
6.4 隱藏和封裝 137
6.5 類的繼承 139
6.5.1 繼承的語法 139
6.5.2 關於多繼承 140
6.5.3 重寫父類的方法 140
6.5.4 使用未綁定方法調用被重寫的方法 141
6.5.5 使用super函數調用父類的構造方法 142
6.6 Python的動態性 143
6.6.1 動態屬性與__slots__ 144
6.6.2 使用type()函數定義類 145
6.6.3 使用metaclass 146
6.7 多態 147
6.7.1 多態性 147
6.7.2 檢查類型 149
6.8 枚舉類 150
6.8.1 枚舉入門 150
6.8.2 枚舉的構造器 152
6.9 本章小結 153
本章練習 153

第7章 異常處理 154
7.1 異常概述 155
7.2 異常處理機制 156
7.2.1 使用try...except捕獲異常 156
7.2.2 異常類的繼承體系 157
7.2.3 多異常捕獲 159
7.2.4 訪問異常信息 160
7.2.5 else塊 161
7.2.6 使用finally回收資源 163
7.2.7 異常處理嵌套 165
7.3 使用raise引發異常 165
7.3.1 引發異常 165
7.3.2 自定義異常類 166
7.3.3 except和raise同時使用 167
7.3.4 raise不需要參數 168
7.4 Python的異常傳播軌跡 168
7.5 異常處理規則 170
7.5.1 不要過度使用異常 171
7.5.2 不要使用過於龐大的try塊 172
7.5.3 不要忽略捕獲到的異常 172
7.6 本章小結 172
本章練習 173

第8章 Python類的特殊方法 174
8.1 常見的特殊方法 175
8.1.1 重寫__repr__方法 175
8.1.2 析構方法:__del__ 176
8.1.3 __dir__方法 177
8.1.4 __dict__屬性 178
8.1.5 __getattr__、__setattr__等 178
8.2 與反射相關的屬性和方法 180
8.2.1 動態操作屬性 180
8.2.2 __call__屬性 182
8.3 與序列相關的特殊方法 183
8.3.1 序列相關方法 183
8.3.2 實現迭代器 185
8.3.3 擴展列表、元組和字典 186
8.4 生成器 186
8.4.1 創建生成器 187
8.4.2 生成器的方法 189
8.5 運算符重載的特殊方法 191
8.5.1 與數值運算符相關的特殊方法 191
8.5.2 與比較運算符相關的特殊方法 194
8.5.3 與單目運算符相關的特殊方法 195
8.5.4 與類型轉換相關的特殊方法 196
8.5.5 與常見的內建函數相關的特殊方法 197
8.6 本章小結 198
本章練習 198

第9章 模塊和包 199
9.1 模塊化編程 200
9.1.1 導入模塊的語法 200
9.1.2 定義模塊 203
9.1.3 為模塊編寫說明文檔 203
9.1.4 為模塊編寫測試代碼 204
9.2 加載模塊 205
9.2.1 使用環境變量 205
9.2.2 默認的模塊加載路徑 208
9.2.3 導入模塊的本質 209
9.2.4 模塊的__all__變量 211
9.3 使用包 212
9.3.1 什麼是包 212
9.3.2 定義包 212
9.3.3 導入包內成員 214
9.4 查看模塊內容 216
9.4.1 模塊包含什麼 216
9.4.2 使用__do

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 616
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區