Python 從菜鳥到高手, 2/e

李寧

  • 出版商: 清華大學
  • 出版日期: 2022-11-01
  • 定價: $570
  • 售價: 8.5$485
  • 語言: 簡體中文
  • ISBN: 730261394X
  • ISBN-13: 9787302613947
  • 相關分類: Python程式語言Data Science
  • 立即出貨 (庫存 < 4)

  • Python 從菜鳥到高手, 2/e-preview-1
  • Python 從菜鳥到高手, 2/e-preview-2
  • Python 從菜鳥到高手, 2/e-preview-3
Python 從菜鳥到高手, 2/e-preview-1

買這商品的人也買了...

商品描述

本書從實戰角度系統講解了Python核心知識點以及Python在Web開發、數據分析、網絡爬蟲、桌面應用等領域的各種應用實踐。本書用超過10萬行代碼、500個案例完美演繹了Python在各個領域的出色表現,每一個案例都擁有詳細的實現步驟,帶領讀者由淺入深系統掌握Python語言的核心以及Python全棧開發的技能。本書分為四篇,共26章,介紹Python基礎、存儲解決方案、網絡與並發和Python高級技術等內容。 本書適用於零基礎的初學者,適合作為高等院校教材,也適合想掌握Python開發的程序員以及所有對Python感興趣的技術人員參考。

目錄大綱

目錄

 

 

 

 

 

第一篇  Python基礎知識

第1章  Python入門 3

1.1  搭建Python編程環境 3

1.1.1  獲取Python安裝包 3

1.1.2  安裝Windows版的Python安裝包 4

1.1.3  安裝macOS版的Python安裝包 4

1.1.4  安裝Linux版的Python安裝包 4

1.2  搭建和使用PyCharm 5

1.2.1  下載和安裝PyCharm 5

1.2.2  創建PyCharm Python工程 6

1.2.3  在PyCharm中添加Python環境 7

1.2.4  在PyCharm中運行Python程序 9

1.3  Python中的REPL環境 9

1.4  第一個Python程序 10

1.5  調試Python程序 10

1.6  實戰與演練 12

1.7  本章小結 12

第2章  Python語言基礎 13

2.1  運行helloworld.py會發生什麽情況 13

2.2  變量 14

2.2.1  變量的定義和初始化 14

2.2.2  變量的命名 15

2.2.3  避免弄錯變量名 16

2.2.4  如何理解變量 17

2.3  字符串基礎 18

2.3.1  單引號字符串和轉義符 18

2.3.2  拼接字符串 19

2.3.3  保持字符串的原汁原味 20

2.3.4  長字符串 21

2.4  數字 22

2.4.1  基礎知識 22

2.4.2  大整數 23

2.4.3  二進制、八進制和十六進制 24

2.4.4  數字的格式化輸出 25

2.5  獲取用戶輸入 26

2.6  註釋 26

2.7  實戰與演練 27

2.8  本章小結 28

第3章  條件與循環 29

3.1  條件和條件語句 29

3.1.1  布爾(Boolean)值和布爾變量 29

3.1.2  條件語句(if、else和elif) 30

3.1.3  嵌套代碼塊 32

3.1.4  比較運算符 33

3.1.5  斷言 35

3.1.6  pass語句與空代碼塊 36

3.2  循環 37

3.2.1  while循環 37

3.2.2  for循環 38

3.2.3  跳出循環 40

3.2.4  循環中的else語句 41

3.3  實戰與演練 42

3.4  本章小結 43

第4章  列表和元組 44

4.1  定義列表 44

4.2  列表的基本操作 44

4.2.1  通過索引操作列表元素 44

4.2.2  分片 46

4.2.3  列表的加法 48

4.2.4  列表的乘法 48

4.2.5  in運算符 48

4.2.6  列表的長度、最大值和最小值 49

4.2.7  列表封包和列表解包 50

4.2.8  修改列表元素 52

4.2.9  刪除列表元素 52

4.2.10  分片賦值 52

4.3  列表方法 53

4.4  元組 56

4.5  for循環與列表 57

4.5.1  使用for循環枚舉列表與元組中的元素 57

4.5.2  使用for-in循環遍歷列表與元組中的元素 58

4.5.3  使用for表達式自動生成列表 59

4.6  實戰與演練 60

4.7  本章小結 62

第5章  字符串 63

5.1  字符串格式化 63

5.1.1  字符串格式化基礎 63

5.1.2  模板字符串 65

5.1.3  字符串的format方法 65

5.1.4  更進一步控制字符串格式化參數 67

5.1.5  字段寬度、精度和千分位分隔符 68

5.1.6  符號、對齊、用0填充和進制轉換 69

5.1.7  f字符串 70

5.2  字符串方法 70

5.2.1  center方法 70

5.2.2  find方法 71

5.2.3  join方法 71

5.2.4  split方法 72

5.2.5  lower方法、upper方法和capwords函數 73

5.2.6  replace方法 74

5.2.7  strip方法 74

5.2.8  translate方法與maketrans方法 75

5.3  實戰與演練 75

5.4  本章小結 76

第6章  字典 77

6.1  為什麽要引入字典 77

6.2  創建和使用字典 78

6.2.1  dict函數 78

6.2.2  字典的基本操作 78

6.2.3  字典的格式化字符串 80

6.2.4  字典迭代 81

6.3  字典方法 82

6.3.1  clear方法 82

6.3.2  copy方法與deepcopy函數 82

6.3.3  fromkeys方法 83

6.3.4  get方法 84

6.3.5  items方法和keys方法 84

6.3.6  pop方法和popitem方法 85

6.3.7  setdefault方法 86

6.3.8  update方法 87

6.3.9  values方法 87

6.4  實戰與演練 88

6.5  本章小結 89

第7章  函數 90

7.1  函數基礎 90

7.1.1  定義函數 90

7.1.2  為函數添加文檔註釋 90

7.1.3  沒有返回值的函數 91

7.2  函數參數 92

7.2.1  改變參數的值 92

7.2.2  命名參數與默認值 97

7.2.3  可變參數 99

7.2.4  將序列作為函數的參數值 100

7.3  作用域 103

7.4  實戰與演練 104

7.5  本章小結 105

第8章  類和對象 106

8.1  對象的魔法 106

8.2  類 106

8.2.1  創建自己的類 106

8.2.2  方法和私有化 108

8.2.3  類代碼塊 110

8.2.4  類的繼承 111

8.2.5  檢測繼承關系 111

8.2.6  多繼承 113

8.2.7  接口 114

8.3  實戰與演練 116

8.4  本章小結 116

第9章  異常 117

9.1  什麽是異常 117

9.2  主動拋出異常 117

9.2.1  raise語句 118

9.2.2  自定義異常類 119

9.3  捕捉異常 120

9.3.1  try…except語句的基本用法 120

9.3.2  捕捉多個異常 121

9.3.3  用同一個代碼塊處理多個異常 123

9.3.4  捕捉對象 124

9.3.5  異常捕捉中的else子句 126

9.3.6  異常捕捉中的finally子句 127

9.4  異常、函數與棧跟蹤 129

9.5  異常的妙用 129

9.6  實戰與演練 131

9.7  本章小結 131

第10章  方法、屬性和迭代器 132

10.1  構造方法 132

10.1.1  構造方法的基礎知識 132

10.1.2  重寫普通方法和構造方法 133

10.1.3  使用super函數 135

10.2  特殊成員方法 136

10.2.1  自定義序列 136

10.2.2  從內建列表、字符串和字典繼承 138

10.3  方法重載 140

10.3.1  Python為什麽在語法上不支持方法重載 141

10.3.2  用魔法方法讓Python支持方法重載 142

10.4  屬性 145

10.4.1  傳統的屬性 145

10.4.2  property函數 147

10.4.3  監控對象中所有的屬性 148

10.5  靜態方法和類方法 150

10.6  迭代器 152

10.7  生成器 153

10.8  裝飾器 154

10.8.1  疊加使用Python裝飾器 154

10.8.2  定義Python裝飾器 154

10.8.3  理解Python函數 155

10.8.4  理解Python裝飾器 157

10.9  實戰與演練 158

10.10  本章小結 159

第二篇  存儲解決方案

第11章  文件和流 163

11.1  打開文件 163

11.2  操作文件的基本方法 164

11.2.1  讀文件和寫文件 165

11.2.2  管道輸出 166

11.2.3  讀行和寫行 167

11.3  使用FileInput對象讀取文件 169

11.4  實戰與演練 170

11.5  本章小結 170

第12章  數據存儲 171

12.1  處理XML格式的數據 171

12.1.1  讀取與搜索XML文件 171

12.1.2  字典轉換為XML字符串 172

12.1.3  XML字符串轉換為字典 174

12.2  處理JSON格式的數據 175

12.2.1  JSON字符串與字典互相轉換 175

12.2.2  將JSON字符串轉換為類實例 177

12.2.3  將類實例轉換為JSON字符串 178

12.2.4  類實例列表與JSON字符串互相轉換 179

12.3  將JSON字符串轉換為XML字符串 180

12.4  SQLite數據庫 180

12.4.1  管理SQLite數據庫 181

12.4.2  用Python操作SQLite數據庫 183

12.5  MySQL數據庫 186

12.6  非關系型數據庫 188

12.6.1  NoSQL簡介 188

12.6.2  MongoDB數據庫 188

12.6.3  pymongo模塊 190

12.7  實戰與演練 191

12.8  本章小結 192

第三篇  網絡與並發

第13章  TCP與UDP編程 195

13.1  套接字 195

13.1.1  建立TCP服務端 195

13.1.2  服務端接收數據的緩沖區 199

13.1.3  服務端的請求隊列 200

13.1.4  時間戳服務端 202

13.1.5  用Socket實現HTTP服務器 203

13.1.6  客戶端Socket 206

13.1.7  UDP時間戳服務端 207

13.1.8  UDP時間戳客戶端 208

13.2  socketserver模塊 209

13.2.1  實現socketserver TCP時間戳服務端 209

13.2.2  實現socketserver TCP時間戳客戶端 210

13.3  實戰與演練 211

13.4  本章小結 212

第14章  網絡高級編程 213

14.1  urllib3模塊 213

14.1.1  發送HTTP GET請求 213

14.1.2  發送HTTP POST請求 214

14.1.3  HTTP請求頭 216

14.1.4  HTTP響應頭 218

14.1.5  上傳文件 219

14.1.6  超時 220

14.2  Twisted框架 222

14.2.1  異步編程模型 222

14.2.2  Reactor(反應堆)模式 224

14.2.3  HelloWorld(Twisted框架) 224

14.2.4  用Twisted實現時間戳客戶端 226

14.2.5  用Twisted實現時間戳服務端 227

14.3  FTP客戶端 228

14.4  實戰與演練 230

14.5  本章小結 230

第15章  線程與協程 231

15.1  線程與進程 231

15.1.1  進程 231

15.1.2  線程 231

15.2  Python與線程 232

15.2.1  使用單線程執行程序 232

15.2.2  使用多線程執行程序 233

15.2.3  為線程函數傳遞參數 234

15.2.4  線程和鎖 235

15.3  高級線程模塊(threading) 236

15.3.1  Thread類與線程函數 236

15.3.2  Thread類與線程對象 237

15.3.3  從Thread類繼承 238

15.4  線程同步 240

15.4.1  線程鎖 240

15.4.2  信號量 242

15.5  協程 243

15.5.1  同步協程 244

15.5.2  異步協程 245

15.6  實戰與演練 245

15.7  本章小結 246

第四篇  Python高級技術

第16章  GUI庫:PyQt6 249

16.1  PyQt6簡介 249

16.2  PyQt6運行環境安裝 250

16.3  編寫第一個PyQt6程序 250

16.4  窗口的基本功能 251

16.4.1  窗口圖標 251

16.4.2  提示框 251

16.4.3  關閉窗口 252

16.4.4  消息盒子 253

16.4.5  窗口居中 254

16.5  佈局 255

16.5.1  絕對佈局 255

16.5.2  盒佈局 256

16.5.3  網格佈局 257

16.6  控件 258

16.6.1  QPushButton控件 259

16.6.2  QLineEdit控件 261

16.6.3  QCheckBox控件 261

16.6.4  QSlider控件 263

16.6.5  QProgressBar控件 264

16.6.6  QPixmap控件 265

16.6.7  QComboBox控件 266

16.6.8  QCalendarWidget控件 267

16.7  菜單 269

16.8  實戰與演練 270

16.9  本章小結 270

第17章  PyQt6游戲項目實戰:俄羅斯方塊 271

17.1  游戲概述 271

17.2  實現游戲的思路 271

17.3  游戲窗口 272

17.4  創建新的方塊 273

17.5  繪制俄羅斯方塊 274

17.6  響應鍵盤動作 275

17.7  移動和旋轉方塊 276

17.8  顯示下一個俄羅斯方塊 278

17.9  本章小結 278

第18章  Python游戲引擎:Pygame基礎知識 279

18.1  Pygame入門 279

18.1.1  搭建Pygame開發環境 279

18.1.2  使用Pygame 279

18.1.3  顯示文本 281

18.1.4  顯示中文 282

18.1.5  繪制圓 282

18.1.6  繪制矩形 283

18.1.7  繪制直線 284

18.1.8  繪制弧形 285

18.2  鍵盤和鼠標事件 286

18.2.1  鍵盤事件 286

18.2.2  鼠標事件 287

18.3  實戰與演練 289

18.4  本章小結 290

第19章  Python游戲引擎:Pygame高級技術 291

19.1  圖像處理 291

19.1.1  裝載位圖 291

19.1.2  裝載星空背景 291

19.1.3  顯示和旋轉地球 292

19.2  Pygame精靈(Sprite) 293

19.2.1  為Sprite準備動畫素材 294

19.2.2  編寫精靈類 294

19.2.3  裝載Sprite動畫資源 295

19.2.4  縮放Sprite 295

19.2.5  繪制幀 296

19.2.6  設置Sprite動畫幀率 296

19.2.7  精靈組 297

19.2.8  實現不同的幀率 297

19.2.9  完整案例:Sprite演示 299

19.3  碰撞檢測 302

19.3.1  矩形碰撞檢測 302

19.3.2  圓形碰撞檢測 302

19.3.3  遮罩碰撞檢測 303

19.3.4  精靈與組之間的碰撞檢測 304

19.3.5  組與組之間的碰撞檢測 304

19.4  給游戲加上音效 305

19.5  實戰與演練 307

19.6  本章小結 308

第20章  Pygame游戲項目實戰:塔防 310

20.1  游戲概述 310

20.2  游戲中需要完成的工作 310

20.3  游戲初始化 310

20.4  展現游戲角色 311

20.5  響應鼠標和鍵盤事件 312

20.6  碰撞檢測 313

20.7  本章小結 313

第21章  網絡爬蟲與Beautiful Soup 314

21.1  網絡爬蟲基礎 314

21.1.1  爬蟲分類 314

21.1.2  編寫第1個網絡爬蟲 315

21.1.3  保存抓取的數據 318

21.1.4  從百度抓取海量比基尼美女圖片 319

21.2  HTML分析庫:Beautiful Soup 323

21.2.1  如何使用Beautiful Soup 323

21.2.2  Tag對象的name和string屬性 324

21.2.3  讀寫標簽屬性 325

21.2.4  用Beautiful Soup分析京東商城首頁的HTML代碼 327

21.2.5  通過回調函數過濾標簽 328

21.3  實戰與演練 328

21.4  本章小結 329

第22章  Python辦公自動化 330

22.1  Python與Excel交互 330

22.1.1  Python為什麽要與Office交互 330

22.1.2  Python與Office交互的各種技術 330

22.1.3  安裝openpyxl 331

22.1.4  創建和保存Workbook 331

22.1.5  讀取Excel文檔 332

22.1.6  獲取和設置單元格中的值 333

22.1.7  插入和刪除行 334

22.1.8  插入和刪除列 335

22.1.9  訪問多個單元格 336

22.1.10  改變行高和列寬 337

22.1.11  設置單元格文字顏色、字體和背景色 338

22.1.12  使用公式 339

22.1.13  向Excel文檔插入圖像 340

22.1.14  格式化數字和日期 340

22.1.15  合並單元格和取消單元格合並 341

22.1.16  Excel與Pandas結合 342

22.2  Python與Word交互 343

22.2.1  讀取Word文檔的段落 343

22.2.2  獲取段落中的樣式文本 344

22.2.3  設置文本的樣式 344

22.2.4  向Word文檔添加文本 344

22.2.5  向Word文檔添加標題 345

22.2.6  添加換頁符 345

22.2.7  在Word文檔中插入圖像 346

22.2.8  將Word文檔轉換為PDF文檔 346

22.3  Python與PowerPoint交互 347

22.3.1  讀取幻燈片中的文本 347

22.3.2  獲取某一頁幻燈片中的文本 348

22.3.3  新建幻燈片 348

22.3.4  為幻燈片添加一個文本框 348

22.3.5  向幻燈片添加圖像 349

22.4  Python與PDF交互 349

22.4.1  讀取PDF文檔的文本 349

22.4.2  創建PDF文檔 350

22.5  實戰與演練 350

22.6  本章小結 351

第23章  Python爬蟲項目實戰:抓取網絡數據和圖片 352

23.1  網絡庫requests 352

23.1.1  requests的HelloWorld 352

23.1.2  HTTP GET請求 353

23.1.3  添加HTTP請求頭 353

23.1.4  抓取二進制數據 354

23.1.5  HTTP POST請求 354

23.1.6  響應數據 355

23.2  項目1:抓取酷狗紅歌榜 356

23.2.1  項目分析 356

23.2.2  項目的完整實現 357

23.3  項目2:抓取金字塔圖片,並保存為Excel文檔 358

23.3.1  項目分析 359

23.3.2  webp轉換為jpg格式 359

23.3.3  項目的完整實現 359

23.4  本章小結 362

第24章  Python Web框架:Django 363

24.1  Django安裝環境搭建 363

24.2  Django基礎知識 363

24.2.1  建立第一個Django工程 363

24.2.2  Django工程結構分析 365

24.2.3  遠程訪問與埠號 365

24.2.4  用PyCharm建立Django工程 366

24.2.5  添加路由 367

24.2.6  處理HTTP請求 368

24.2.7  Response與Cookie 370

24.2.8  讀寫Session 372

24.2.9  用戶登錄 373

24.2.10  靜態文件 375

24.3  Django模板 377

24.3.1  編寫第一個基於Django模板的應用 377

24.3.2  條件控制標簽 378

24.3.3  循環控制標簽 379

24.3.4  過濾器 380

24.4  實戰與演練 382

24.5  本章小結 382

第25章  Python Web項目實戰:基於Django的58同城網站 383

25.1  項目演示 383

25.2  操作MySQL數據庫 384

25.3  賬號 385

25.3.1  用戶註冊 385

25.3.2  用戶登錄 386

25.4  招聘頁面 388

25.5  二手車頁面 390

25.6  本章小結 392

第26章  Python擴展學習 393

26.1  用Python控制鼠標和鍵盤 393

26.1.1  獲取鼠標的位置 393

26.1.2  實時獲取鼠標的位置 393

26.1.3  移動和拖動鼠標 394

26.1.4  模擬單擊和雙擊鼠標 394

26.1.5  模擬按鍵 395

26.1.6  模擬鍵盤輸入 395

26.2  Python與C/C++交互 395

26.2.1  Python通過cffi調用C/C++動態庫 396

26.2.2  Python通過cython調用C/C++動態庫 396

26.3  製作Python安裝程序 397

26.4  實戰與演練 397

26.5  本章小結 398