細說 Python 編程:從入門到科學計算

凌峰、韓曉泉

  • 出版商: 清華大學
  • 出版日期: 2023-07-01
  • 售價: $894
  • 貴賓價: 9.5$849
  • 語言: 簡體中文
  • 頁數: 491
  • 裝訂: 平裝
  • ISBN: 7302637997
  • ISBN-13: 9787302637998
  • 相關分類: Python程式語言人工智慧
  • 立即出貨

  • 細說 Python 編程:從入門到科學計算-preview-1
  • 細說 Python 編程:從入門到科學計算-preview-2
  • 細說 Python 編程:從入門到科學計算-preview-3
細說 Python 編程:從入門到科學計算-preview-1

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

商品描述

《細說Python編程:從入門到科學計算》以Python 3.x為平臺,由兩位博士執筆,詳盡細致地闡述Python編程的基礎知識和高級技巧,並以大量示例代碼進行實踐,同時還介紹人工智能領域廣泛使用的科學計算工具NumPy。《細說Python編程:從入門到科學計算》分為兩篇,共19章。第1篇(第1~11章)為基礎知識,主要講解Python的編譯環境、入門知識、字符串、容器、函數、循環、條件選擇、模塊、類、類的特殊成員、文件;第2篇(第12~19章)為高級應用,包括異常處理、日期和時間、測試代碼、程序打包、使用數據庫、網絡編程、圖形用戶界面、科學計算等內容。全書知識點豐富,輔之以示例演示,讀者可以邊學邊練,快速掌握。 《細說Python編程:從入門到科學計算》還提供了16小時共151節微課教學視頻,讀者掃碼即可觀看學習,免費提供的示例源碼文件可直接調用,方便上機操練。 《細說Python編程:從入門到科學計算》深入淺出,內容新穎,涉及面廣,適合想要學習Python編程的各層次讀者。

目錄大綱

目    錄

第1篇  基礎知識

第 1 章  構建Python開發環境3

1.1  初識Python3

1.2  安裝Python4

1.2.1  在Windows環境下安裝5

1.2.2  在Linux環境下安裝7

1.2.3  在Mac環境下安裝7

1.3  Python IDE和Anaconda介紹7

1.3.1  Python IDE8

1.3.2  PyCharm10

1.3.3  Anaconda介紹15

1.4  認識Python程序15

1.4.1  命令行15

1.4.2  Python代碼行16

1.4.3  Python腳本17

1.4.4  縮進17

1.4.5  註釋19

1.5  小結19

第 2 章  開始你的Python編程20

2.1  Python的基本編碼規範20

2.2  關鍵字24

2.3  常量與變量24

2.4  標識符26

2.5  運算符27

2.5.1  算術運算符27

2.5.2  比較運算符28

2.5.3  邏輯運算符29

2.5.4  位運算符29

2.5.5  成員運算符30

2.5.6  身份運算符30

2.5.7  賦值運算符31

2.5.8  運算符優先級32

2.6  數據類型33

2.6.1  整數型33

2.6.2  浮點型35

2.6.3  復數型36

2.6.4  字節型37

2.6.5  布爾型38

2.6.6  字符串型39

2.7  內置函數42

2.7.1  內置函數的概念42

2.7.2  幾個常用的內置函數43

2.8  小結46

第 3 章  字符串47

3.1  字符串的基本操作47

3.1.1  字符串索引和切片47

3.1.2  字符串是不可變的50

3.1.3  字符串拼接50

3.1.4  字符串長度52

3.1.5  字符串分割54

3.1.6  返回字符串中最大的字母和最小的字母55

3.1.7  字符串填充56

3.2  轉義字符57

3.3  字符串運算符59

3.4  字符串格式化60

3.5  字符串檢索與統計61

3.5.1  統計字符串出現的次數61

3.5.2  檢測字符串中是否包含某子串63

3.5.3  檢索字符串開頭和結尾65

3.6  字符串大小寫轉換66

3.6.1  大小寫全部轉換67

3.6.2  字符串頭部大小寫轉換68

3.6.3  大小寫反轉69

3.6.4  字符串替換69

3.7  刪除指定字符串70

3.8  字符串合並72

3.9  字符串對齊72

3.9.1  ljust()方法73

3.9.2  rjust()方法74

3.9.3  center()方法75

3.10  字符串編解碼76

3.10.1  字符串編碼76

3.10.2  字符串解碼77

3.11  小結78

第 4 章  容器79

4.1  列表79

4.1.1  列表的創建方法79

4.1.2  列表的基本操作81

4.1.3  列表方法84

4.1.4  創建數字列表89

4.2  元組90

4.2.1  元組的創建方法90

4.2.2  元組的訪問91

4.3  字典93

4.3.1  字典的應用93

4.3.2  創建字典93

4.3.3  字典的常見操作94

4.3.4  字符串用於字典96

4.3.5  字典方法96

4.3.6  使用字典時的註意事項104

4.4  集合105

4.4.1  集合的創建105

4.4.2  集合方法106

4.5  容器嵌套112

4.5.1  字典列表113

4.5.2  在字典中存儲列表113

4.6  小結113

第 5 章  函數114

5.1  函數的定義和調用114

5.1.1  函數的定義115

5.1.2  函數的調用116

5.1.3  提供說明文檔116

5.2  函數參數和返回值117

5.2.1  函數參數及其傳遞117

5.2.2  關鍵字參數119

5.2.3  位置參數119

5.2.4  默認參數121

5.2.5  不定長參數122

5.2.6  函數的返回值123

5.3  空值125

5.4  變量的作用域126

5.4.1  局部變量126

5.4.2  全局變量128

5.5  局部函數129

5.6  exec()函數和eval()函數132

5.7  函數的高級話題134

5.7.1  lambda匿名函數135

5.7.2  函數式編程136

5.7.3  閉包函數138

5.7.4  遞歸139

5.8  小結141

第 6 章  循環142

6.1  while循環142

6.1.1  while的用法142

6.1.2  while...else語句144

6.1.3  while嵌套144

6.2  for循環145

6.2.1  for的用法145

6.2.2  for...else語句147

6.2.3  for嵌套148

6.2.4  使用for循環遍歷字典150

6.3  break語句153

6.4  continue語句155

6.5  pass語句156

6.6  循環中的常用內置函數157

6.6.1  zip()函數157

6.6.2  reversed()函數158

6.6.3  sorted()函數160

6.7  小結162

第 7 章  條件選擇163

7.1  if語句詳解163

7.1.1  if語句164

7.1.2  if else語句164

7.1.3  if elif else166

7.2  條件測試167

7.2.1  是否相等167

7.2.2  是否不相等168

7.2.3  比較數字169

7.2.4  檢查多個條件169

7.2.5  檢查字典中的特定值170

7.3  if語句處理列表171

7.3.1  確定列表不是空的171

7.3.2  處理列表中的特殊元素171

7.3.3  多個列表172

7.4  條件語句和循環語句結合應用173

7.4.1  實現簡單的用戶登錄驗證程序173

7.4.2  打印空心等邊三角形173

7.4.3  打印空心菱形174

7.4.4  打印空心正方形175

7.5  小結176

第 8 章  模塊、包和標準庫177

8.1  模塊177

8.1.1  創建模塊178

8.1.2  使用模塊180

8.2  包182

8.2.1  創建包182

8.2.2  安裝包183

8.3  探索模塊185

8.3.1  模塊包含什麽185

8.3.2  使用help獲取幫助186

8.3.3  文檔187

8.3.4  使用源代碼188

8.4  標準庫188

8.4.1  os189

8.4.2  sys190

8.4.3  random191

8.4.4  re194

8.4.5  其他常用的標準模塊200

8.5  小結201

第 9 章  類202

9.1  一切皆對象202

9.1.1  面向對象概述202

9.1.2  面向對象相關術語204

9.2  創建和使用類204

9.2.1  如何定義類204

9.2.2  __init__()類的構造方法206

9.2.3  類的實例化207

9.2.4  類對象的使用208

9.2.5  self用法詳解212

9.2.6  使用type()函數動態創建類214

9.2.7  MetaClass元類215

9.3  類屬性和實例屬性217

9.3.1  類變量(類屬性)217

9.3.2  實例變量(實例屬性)221

9.3.3  類的局部變量224

9.3.4  使用property()函數定義屬性224

9.3.5  限制類實例動態添加屬性和方法227

9.4  方法230

9.4.1  實例方法230

9.4.2  靜態方法231

9.4.3  類方法232

9.4.4  調用實例方法233

9.4.5  描述符233

9.4.6  @property裝飾器235

9.5  Python類命名空間237

9.6  封裝238

9.6.1  Python類的封裝239

9.6.2  封裝底層實現原理241

9.7  類的繼承242

9.7.1  單繼承243

9.7.2  多繼承244

9.7.3  子類繼承父類構造函數說明246

9.7.4  父類方法重寫248

9.7.5  super()使用註意事項250

9.8  多態及用法詳解252

9.9  接口254

9.10  抽象基類256

9.11  枚舉類的定義和使用258

9.12  搜索引擎的實現263

9.13  面向對象編程建議266

9.13.1  與類相關的編碼風格266

9.13.2  編程建議266

9.14  小結267

第 10 章  類的特殊成員268

10.1  常用類的特殊方法268

10.1.1  創建類實例269

10.1.2  顯示屬性270

10.1.3  銷毀對象271

10.1.4  列出對象的所有屬性(方法)273

10.1.5  查看對象的內部屬性274

10.1.6  __call__()方法277

10.2  常用函數及用法278

10.2.1  hasattr()函數278

10.2.2  getattr()函數279

10.2.3  setattr()函數280

10.2.4  類型檢查282

10.3  運算符重載285

10.3.1  何謂運算符重載285

10.3.2  使用重載運算符實現自定義序列287

10.4  迭代器和生成器289

10.4.1  迭代器289

10.4.2  生成器292

10.4.3  生成器方法294

10.5  函數裝飾器298

10.5.1  函數裝飾器的原理298

10.5.2  含參函數裝飾器300

10.5.3  函數裝飾器嵌套301

10.6  裝飾器的應用場景302

10.6.1  身份認證302

10.6.2  日誌記錄303

10.6.3  輸入合理性檢查303

10.6.4  緩存裝飾器304

10.7  小結304

第 11 章  文件305

11.1  打開文件305

11.2  文件對象的基本操作307

11.2.1  讀取與寫入307

11.2.2  使用管道重定向輸出308

11.2.3  讀取和寫入行309

11.2.4  關閉文件314

11.3  迭代文件內容315

11.3.1  每次讀取一個字符(或字節)315

11.3.2  每次一行316

11.3.3  讀取所有內容317

11.3.4  延遲行迭代實現318

11.3.5  文件迭代器318

11.4  使用tell()函數和seek()函數讀寫文件319

11.4.1  tell()函數的使用320

11.4.2  seek()函數的使用320

11.5  with as的用法322

11.6  上下文管理器323

11.6.1  基於類實現323

11.6.2  基於生成器實現324

11.7  常用的文件模塊325

11.7.1  pickle模塊325

11.7.2  linecache模塊328

11.7.3  pathlib模塊329

11.7.4  fnmatch模塊333

11.7.5  os模塊334

11.8  tempfile模塊343

11.9  小結345

第 2 篇  高級應用

第 12 章  異常349

12.1  異常是什麽349

12.2  Python常見的異常類型350

12.2.1  Python語法錯誤350

12.2.2  Python運行時錯誤350

12.3  raise的用法355

12.3.1  raise語句的用法355

12.3.2  自定義異常類356

12.4  捕獲異常357

12.4.1  raise捕獲異常358

12.4.2  復雜except子句360

12.4.3  一次捕獲多種異常361

12.4.4  捕獲對象362

12.4.5  捕獲所有異常362

12.4.6  捕獲異常並順利執行代碼363

12.4.7  finally子句365

12.5  跟蹤異常信息367

12.5.1  異常和函數367

12.5.2  sys.exc_info()方法368

12.5.3  traceback模塊369

12.6  警告371

12.7  小結373

第 13 章  日期和時間374

13.1  Python中幾個與時間相關的術語374

13.2  Python中時間的表示375

13.3  time模塊376

13.4  datetime模塊379

13.4.1  datetime.date類379

13.4.2  datetime.time類382

13.4.3  datetime.datetime類383

13.4.4  時間戳與時間字符串轉換386

13.4.5  datetime.timedelta類387

13.5  calendar模塊389

13.6  時間格式化輸出391

13.7  小結392

第 14 章  測試代碼393

14.1  先測試,再編碼393

14.1.1  準確的需求說明394

14.1.2  做好應對變化的準備394

14.1.3  測試四步曲395

14.2  測試工具396

14.2.1  doctest框架的使用396

14.2.2  unittest的簡單使用397

14.3  超越單元測試400

14.3.1  源代碼檢查400

14.3.2  性能分析402

14.4  小結402

第 15 章  程序打包403

15.1  Setuptools基礎403

15.2  打包405

15.3  編譯擴展406

15.4  創建可執行程序407

15.5  小結408

第 16 章  使用數據庫409

16.1  數據庫API409

16.1.1  全局變量410

16.1.2  異常410

16.1.3  連接和游標411

16.1.4  類型412

16.2  SQLite和PySQLite413

16.2.1  SQLite起步413

16.2.2  數據庫應用示例414

16.3  小結416

第 17 章  網絡編程417

17.1  網絡模塊417

17.1.1  socket模塊417

17.1.2  urllib和urllib2模塊419

17.1.3  其他模塊420

17.2  SocketServer模塊及相關的類420

17.3  處理多個連接421

17.3.1  分叉和線程化實現421

17.3.2  異步I/O實現422

17.4  Twisted424

17.4.1  下載並安裝Twisted425

17.4.2  編寫Twisted服務器425

17.5  小結427

第 18 章  圖形用戶界面428

18.1  建立簡單的Python GUI428

18.1.1  準備工作429

18.1.2  GUI佈局430

18.1.3  事件處理431

18.1.4  GUI文本編輯器432

18.2  Tkinter編程433

18.2.1  Tkinter控件及使用434

18.2.2  Tkinter的應用434

18.3  小結436

第 19 章  科學計算437

19.1  NumPy基礎437

19.1.1  NumPy概述438

19.1.2  ndarray對象438

19.1.3  NumPy數據類型對象440

19.2  數組屬性與創建數組442

19.2.1  數組屬性442

19.2.2  創建數組445

19.2.3  從已有的數組創建數組447

19.2.4  從數值範圍創建數組449

19.3  切片和索引452

19.3.1  切片和索引452

19.3.2  整數數組索引454

19.3.3  布爾索引455

19.3.4  花式索引456

19.4  迭代數組457

19.4.1  控制遍歷順序458

19.4.2  修改數組中元素的值460

19.4.3  使用外部循環460

19.5  處理數組461

19.5.1  修改數組形狀461

19.5.2  翻轉數組464

19.5.3  修改數組維度468

19.5.4  連接數組472

19.5.5  分割數組475

19.5.6  數組元素的添加與刪除478

19.6  使用數學運算函數484

19.6.1  算術函數485

19.6.2  三角函數488

19.6.3  舍入函數490

19.7  小結491

參考文獻492