幫助中心 | 我的帳號 | 關於我們

Python編程從新手到高手

  • 作者:(美)賈森·C.麥克唐納|責編:龔昕岳|譯者:周琦//李者璈
  • 出版社:人民郵電
  • ISBN:9787115659743
  • 出版日期:2025/07/01
  • 裝幀:平裝
  • 頁數:530
人民幣:RMB 119.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書全面細緻地介紹了Python的各個功能、邏輯和慣用模式,以便讀者快速編寫出專業、地道、實用的Python程序,從Python新手成長為高手。
    本書共5個部分。第一部分「Python環境」講解Python的哲學、開發環境、基本語法、項目結構和代碼導入等內容,為讀者編寫規範的Python代碼奠定堅實的基礎。第二部分「基本結構」講解Python的變數、數據類型、函數、類、對象、錯誤和異常等。第三部分「數據和流程」講解操作數據和控制執行流程的許多獨特方法,包括集合、迭代、生成器、推導式、文本輸入 輸出、上下文管理、二進位和序列化等。第四部分「高級概念」探索Python的高級策略,如繼承、混入、元類、抽象基類、自省、泛型、非同步、併發、線程和並行等。第五部分「超越代碼」講解項目的打包、分發、調試、日誌、測試和剖析等環節,並概述Python開發的方向。
    本書適合想要學習編寫專業Python程序的讀者閱讀,既可作為零基礎入門Python的教材,也可作為程序員案頭常備的Python工具書。本書尤其適合已掌握其他編程語言的開發者用來學習Python,可以幫助這些開發者不受其他編程語言的影響來學習地道的Python編程方法。

作者介紹
(美)賈森·C.麥克唐納|責編:龔昕岳|譯者:周琦//李者璈

目錄
第一部分  Python環境
  第1章  Python的哲學
    1.1  到底什麼是Python
    1.2  破除誤解:Python不是什麼
      1.2.1  誤解1:Python僅僅是一種腳本語言
      1.2.2  誤解2:Python很慢
      1.2.3  誤解3:Python不能被編譯
      1.2.4  誤解4:Python在後台編譯
      1.2.5  誤解5:Python不適合大型項目
    1.3  Python 2 vs Python 3
    1.4  定義「Pythonic」代碼
    1.5  Python之禪
    1.6  文檔、PEP和你
    1.7  社區中誰說了算?
    1.8  Python社區
    1.9  對「明顯的方式」的追求
    1.10  本章小結
  第2章  Python開發環境
    2.1  安裝Python
      2.1.1  在Windows系統中安裝Python
      2.1.2  在macOS系統中安裝Python
      2.1.3  在Linux系統中安裝Python
      2.1.4  通過源代碼構建Python
    2.2  認識Python解釋器
      2.2.1  互動式會話
      2.2.2  運行Python文件
    2.3  包和虛擬環境
      2.3.1  創建一個虛擬環境
      2.3.2  激活虛擬環境
      2.3.3  退出虛擬環境
    2.4  pip介紹
      2.4.1  系統範圍的包
      2.4.2  安裝包
      2.4.3  requirements.txt
      2.4.4  更新包
      2.4.5  卸載包
      2.4.6  搜索包
      2.4.7  一個關於pip的警告
    2.5  虛擬環境和Git
      2.5.1  shebang
      2.5.2  文件編碼
    2.6  一些額外的關於虛擬環境的小貼士
      2.6.1  在不激活虛擬環境的情況下使用虛擬環境
      2.6.2  一些替代品
    2.7  認識PEP 8
      2.7.1  行寬限制的歷史債務
      2.7.2  製表符還是空格
    2.8  代碼質量控制:靜態分析工具
      2.8.1  Pylint
      2.8.2  Flake8

      2.8.3  Mypy
    2.9  代碼風格守護者:自動格式化工具
      2.9.1  autopep8
      2.9.2  Black
    2.10  測試框架
    2.11  代碼編輯器一覽
      2.11.1  IDLE
      2.11.2  Emacs和Vim
      2.11.3  PyCharm
      2.11.4  Visual Studio Code
      2.11.5  Sublime Text
      2.11.6  Spyder
      2.11.7  Eclipse配合PyDev LiClipse
      2.11.8  Eric Python IDE
    2.12  本章小結
  第3章  語法速成課程
    3.1  「Hello, world!」程序
    3.2  語句和表達式
    3.3  空格的重要性
    3.4  空語句
    3.5  註釋以及文檔字元串
    3.6  聲明變數
    3.7  數學操作
      3.7.1  初識數字類型
      3.7.2  運算符
      3.7.3  math模塊
    3.8  邏輯
      3.8.1  條件語句
      3.8.2  比較運算符
      3.8.3  Boolean、None和身份運算符
      3.8.4  真實性
      3.8.5  邏輯運算符
      3.8.6  海象運算符
      3.8.7  省略符
    3.9  字元串
      3.9.1  字元串字面量
      3.9.2  原始字元串
      3.9.3  格式化字元串
      3.9.4  模板字元串
      3.9.5  字元串轉換
      3.9.6  字元串拼接的注意事項
    3.10  函數
    3.11  類和對象
    3.12  異常處理
    3.13  元組和列表
    3.14  循環
      3.14.1  while循環
      3.14.2  循環控制
      3.14.3  for循環
    3.15  結構模式匹配

    18.8  文檔
    18.9  本章小結
  第19章  調試和日誌
    19.1  警告
      19.1.1  警告的類型
      19.1.2  過濾警告
      19.1.3  將警告轉換為異常
    19.2  日誌記錄
      19.2.1  Logger對象
      19.2.2  Handler對象
      19.2.3  日誌記錄級別
      19.2.4  控制日誌級別
      19.2.5  運行示常式序
      19.2.6  過濾器、格式化程序和配置文件
    19.3  斷言語句
      19.3.1  正確使用斷言
      19.3.2  錯誤使用斷言
      19.3.3  實戰中的斷言
    19.4  inspect模塊
    19.5  使用pdb
      19.5.1  調試案例
      19.5.2  啟動調試器
      19.5.3  調試器shell指令
      19.5.4  單步穿行代碼
      19.5.5  設置斷點並單步執行函數
      19.5.6  遍歷執行棧
      19.5.7  探查源代碼
      19.5.8  檢驗解決方案
      19.5.9  事後調試
    19.6  使用faulthandler
    19.7  用Bandit評估程序安全性
    19.8  向Python開發團隊彙報問題
    19.9  本章小結
  第20章  測試和剖析
    20.1  什麼是TDD?
    20.2  測試框架
    20.3  示例項目
    20.4  測試和項目結構
    20.5  基礎測試
      20.5.1  啟動示例
      20.5.2  單元測試
      20.5.3  用pytest執行測試
      20.5.4  測試異常
    20.6  測試夾具
      20.6.1  繼續之前的示例:使用API
      20.6.2  在測試模塊間共享數據
    20.7  不穩定測試和有條件忽略測試
    20.8  高級夾具:模擬和參數化
      20.8.1  繼續之前的示例:表達拼寫錯誤
      20.8.2  參數化

      20.8.3  間接參數化夾具
      20.8.4  動態替換模擬輸入
      20.8.5  標記
      20.8.6  從標準流中捕獲
      20.8.7  GUI測試
      20.8.8  繼續之前的示例:將API連接到Typo
      20.8.9  自動夾具
      20.8.10  混合參數化
      20.8.11  模糊測試
      20.8.12  完成示例
    20.9  代碼覆蓋率
    20.10  用tox進行自動化測試
    20.11  基準測試和性能分析
      20.11.1  用timeit進行基準測試
      20.11.2  用cProfile或profile進行性能分析
      20.11.3  tracemalloc
    20.12  本章小結
  第21章  前路迢迢
    21.1  關於未來
    21.2  你想出發去哪兒?
      21.2.1  Python應用程序開發
      21.2.2  Python遊戲開發
      21.2.3  Python Web開發
      21.2.4  客戶端Python
      21.2.5  Python數據科學
      21.2.6  Python機器學習
      21.2.7  安全
      21.2.8  Python嵌入式開發
      21.2.9  腳本
    21.3  Python特色
    21.4  開發Python本身
      21.4.1  開發Python包和工具
      21.4.2  開發Python擴展
      21.4.3  為Python做各種貢獻
    21.5  和Python共同成長
      21.5.1  提出問題
      21.5.2  回答問題
      21.5.3  用戶組
      21.5.4  PyLadies
      21.5.5  參加各種會議
      21.5.6  加入Python軟體基金會
    21.6  在這條路上一直走下去
附錄A  特殊方法和屬性
附錄B  pdb指令
附錄C  Guido van Rossum的國王節演講
譯者後記

      3.15.1  文本模式和通配符
      3.15.2  or模式
      3.15.3  捕獲模式
      3.15.4  門衛語句
      3.15.5  更多關於模式匹配的信息
    3.16  本章小結
  第4章  項目結構和代碼導入
    4.1  設置代碼倉庫
    4.2  模塊和包
      4.2.1  PEP 8和命名
      4.2.2  項目的目錄結構
    4.3  import是如何工作的
    4.4  導入操作的注意事項
      4.4.1  從模塊中導入函數
      4.4.2  覆蓋問題
      4.4.3  包嵌套問題
      4.4.4  謹防導入所有
    4.5  在項目中使用import
      4.5.1  絕對導入
      4.5.2  相對導入
      4.5.3  從同一個包中導入
    4.6  入口點
      4.6.1  模塊入口點
      4.6.2  包入口點
      4.6.3  控制包的導入
      4.6.4  程序入口點
    4.7  Python模塊搜索路徑
    4.8  導入模塊時底層發生了什麼?
    4.9  本章小結
第二部分  基本結構
  第5章  變數和數據類型
    5.1  Python中的變數:名稱和值
    5.2  賦值
    5.3  數據類型
      5.3.1  type()函數
      5.3.2  鴨子類型
    5.4  作用域和垃圾回收
      5.4.1  局部作用域以及引用計數垃圾回收器
      5.4.2  解釋器關閉
      5.4.3  全局作用域
      5.4.4  全局作用域的注意事項
      5.4.5  nonlocal關鍵字
      5.4.6  作用域解析
      5.4.7  關於類的一些特殊情況
      5.4.8  分代垃圾回收器
    5.5  不可變的真相
    5.6  賦值傳遞
    5.7  集合和引用
      5.7.1  淺拷貝
      5.7.2  深拷貝

    5.8  隱式類型轉換和顯式類型轉換
    5.9  關於匈牙利命名法的注意事項
    5.10  術語回顧
    5.11  本章小結
  第6章  函數和匿名函數
    6.1  Python函數基礎
    6.2  遞歸
    6.3  默認參數值
    6.4  關鍵字參數
    6.5  重載函數
    6.6  可變參數
    6.7  僅關鍵字參數
      6.7.1  僅位置參數
      6.7.2  參數類型:都在這兒了!
    6.8  嵌套函數
    6.9  閉包
      6.9.1  帶閉包的遞歸
      6.9.2  有狀態閉包
    6.10  lambda表達式
      6.10.1  為什麼lambda表達式很有用?
      6.10.2  將lambda表達式作為排序鍵
    6.11  裝飾器
    6.12  類型提示及函數註解
      6.12.1  鴨子類型和類型提示
      6.12.2  應該使用類型提示嗎?
    6.13  本章小結
  第7章  類和對象
    7.1  聲明一個類
      7.1.1  初始化器
      7.1.2  構造器
      7.1.3  終結器
    7.2  屬性
      7.2.1  實例屬性
      7.2.2  類屬性
    7.3  範圍命名約定
      7.3.1  非公共屬性
      7.3.2  公共屬性
      7.3.3  名稱修飾
      7.3.4  公共屬性、非公共屬性,還是名稱修飾?
    7.4  方法
      7.4.1  實例方法
      7.4.2  類方法
      7.4.3  靜態方法
    7.5  特性
      7.5.1  設置場景
      7.5.2  定義一個特性
      7.5.3  使用裝飾器創建特性
      7.5.4  什麼時候不使用特性?
    7.6  特殊方法
      7.6.1  場景設置

      7.6.2  轉換方法
      7.6.3  比較方法
      7.6.4  二元運算符支持
      7.6.5  一元運算符支持
      7.6.6  讓類可調用
      7.6.7  更多特殊方法
    7.7  類裝飾器
    7.8  對象的結構模式匹配
    7.9  函數式編程和面向對象編程
    7.10  什麼時候使用類?
      7.10.1  類不是模塊
      7.10.2  單一職責
      7.10.3  共享狀態
      7.10.4  對象是否適合你?
    7.11  本章小結
  第8章  錯誤和異常
    8.1  Python中的異常
    8.2  閱讀異常信息
    8.3  捕獲異常:LBYL和EAFP
    8.4  多異常處理
    8.5  當心「尿布反模式」
    8.6  拋出異常
    8.7  使用異常
      8.7.1  異常和日誌
      8.7.2  冒泡
      8.7.3  異常鏈
    8.8  else和finally
      8.8.1  else:如果所有功能正常運行
      8.8.2  finally:在所有語句之後
    8.9  創建異常
    8.10  異常一覽
    8.11  本章小結
第三部分  數據和流程
  第9章  集合與迭代
    9.1  循環
      9.1.1  while循環
      9.1.2  for循環
    9.2  集合
      9.2.1  元組
      9.2.2  具名元組
      9.2.3  列表
      9.2.4  雙端隊列
      9.2.5  可變集合
      9.2.6  不可變集合
      9.2.7  字典
      9.2.8  檢查還是例外?
      9.2.9  字典變體
    9.3  集合的解包
      9.3.1  星號表達式
      9.3.2  字典的解包

    9.4  集合的結構模式匹配
    9.5  以索引或鍵訪問元素
    9.6  切片符
      9.6.1  開始和停止
      9.6.2  負索引
      9.6.3  步長
      9.6.4  切片複製
      9.6.5  切片對象
      9.6.6  對自定義對象切片
      9.6.7  使用islice()
    9.7  in運算符
    9.8  檢驗集合的長度
    9.9  迭代
      9.9.1  可迭代對象和迭代器
      9.9.2  手動使用迭代器
      9.9.3  用for循環進行迭代
      9.9.4  在循環中對集合進行排序
      9.9.5  枚舉循環
      9.9.6  循環中的突變
      9.9.7  嵌套循環和替代方案
    9.10  迭代工具
      9.10.1  基礎內建工具
      9.10.2  filter
      9.10.3  map
      9.10.4  zip
      9.10.5  itertools
    9.11  自定義可迭代類
    9.12  本章小結
  第10章  生成器和推導式
    10.1  惰性求值和貪婪迭代
    10.2  無限迭代器
    10.3  生成器
      10.3.1  生成器vs迭代器類
      10.3.2  生成器關閉
      10.3.3  行為關閉
      10.3.4  異常拋出
    10.4  yield from
    10.5  生成器表達式
      10.5.1  生成器對象都是惰性的
      10.5.2  生成器表達式具有複合循環
      10.5.3  生成器表達式中的條件
      10.5.4  嵌套生成器表達式
    10.6  列表推導式
    10.7  集合推導式
    10.8  字典推導式
    10.9  生成器表達式的隱患
      10.9.1  它們很快就會變得不可讀
      10.9.2  它們無法替代循環
      10.9.3  它們很難調試
      10.9.4  何時用生成器表達式

    10.10  簡單協程
      10.10.1  從協程返回值
      10.10.2  行為序列
    10.11  非同步又如何?
    10.12  本章小結
  第11章  文本輸入 輸出和上下文管理
    11.1  標準輸入和輸出
      11.1.1  重溫print()
      11.1.2  重溫input()
    11.2  流
    11.3  上下文管理器基礎
    11.4  文件模式
    11.5  讀取文件
      11.5.1  read()方法
      11.5.2  readline()方法
      11.5.3  readlines()方法
      11.5.4  迭代讀取
    11.6  流位置
    11.7  寫入文件
      11.7.1  write()方法
      11.7.2  writelines()方法
      11.7.3  用print()寫文件
      11.7.4  行分隔符
    11.8  上下文管理器的細節
      11.8.1  上下文管理器如何工作?
      11.8.2  使用多個上下文管理器
      11.8.3  實現上下文管理協議
      11.8.4  __enter__()方法
      11.8.5  __exit__()方法
      11.8.6  使用自定義類
    11.9  路徑
      11.9.1  路徑對象
      11.9.2  路徑組成
      11.9.3  創建路徑
      11.9.4  相對路徑
      11.9.5  相對包路徑
      11.9.6  路徑操作
      11.9.7  異地文件寫入
      11.9.8  os模塊
    11.10  文件格式
      11.10.1  JSON
      11.10.2  其他格式
    11.11  本章小結
  第12章  二進位和序列化
    12.1  二進位表示和位運算
      12.1.1  數字系統
      12.1.2  Python整數和二進位
      12.1.3  位運算
    12.2  位元組字面量
    12.3  類位元組對象

      12.3.1  創建位元組對象
      12.3.2  使用int.to_bytes()
      12.3.3  序列操作
      12.3.4  將位元組對象轉換為整數
    12.4  struct模塊
      12.4.1  struct格式字元串和打包
      12.4.2  用struct解包
      12.4.3  struct對象
    12.5  類位元組對象的位運算
      12.5.1  通過整數進行位運算
      12.5.2  通過迭代進行位運算
    12.6  memoryview
    12.7  讀寫二進位文件
      12.7.1  數據組織
      12.7.2  文件寫入
      12.7.3  從二進位文件讀取
      12.7.4  從二進位流中查找
      12.7.5  BufferedRWPair
    12.8  序列化技術
      12.8.1  禁忌工具:pickle、marshal和shelve
      12.8.2  序列化格式
    12.9  本章小結
第四部分  高級概念
  第13章  繼承和混入
    13.1  何時使用繼承?
    13.2  Python的基礎繼承
    13.3  多繼承
      13.3.1  方法解析順序
      13.3.2  確保方法解析順序一致
      13.3.3  顯式地指定解析順序
      13.3.4  解析多繼承中的基類
    13.4  混入
    13.5  本章小結
  第14章  元類和抽象基類
    14.1  元類
      14.1.1  用類型創建類
      14.1.2  自定義元類
    14.2  用鴨子類型進行類型推導
      14.2.1  EAFP:捕獲異常
      14.2.2  LBYL:檢查屬性
    14.3  抽象基類
      14.3.1  內置抽象基類
      14.3.2  從抽象基類派生
      14.3.3  實現自定義抽象基類
    14.4  虛擬子類
      14.4.1  設置示例
      14.4.2  使用虛擬子類
    14.5  本章小結
  第15章  自省和泛型
    15.1  特殊屬性

    15.2  內部對象屬性訪問:__dict__特殊屬性
      15.2.1  列出屬性
      15.2.2  獲取屬性
      15.2.3  檢查屬性
      15.2.4  設置屬性
      15.2.5  刪除屬性
    15.3  函數屬性
      15.3.1  函數屬性的錯誤使用方式
      15.3.2  可變性和函數屬性
    15.4  描述符
      15.4.1  描述符協議
      15.4.2  編寫描述符類(有點問題的方式)
      15.4.3  使用描述符
      15.4.4  以正確方式編寫描述符類
      15.4.5  在同一個類中使用多個描述符
    15.5  slots
      15.5.1  將屬性名綁定到值
      15.5.2  通過slots使用任意屬性
      15.5.3  slots和繼承
    15.6  不可變類
    15.7  單分派泛型函數
      15.7.1  用類型提示註冊單分派泛型函數
      15.7.2  用顯式類型註冊單分派泛型函數
      15.7.3  用register()方法註冊單分派泛型函數
    15.8  使用元素類
    15.9  任意執行
    15.10  本章小結
  第16章  非同步和併發
    16.1  Python中的非同步
    16.2  示例場景:Collatz遊戲同步版本
    16.3  非同步
      16.3.1  原生協程
      16.3.2  任務
      16.3.3  事件循環
      16.3.4  令其(實際上)非同步
    16.4  調度和非同步執行流程
    16.5  非同步迭代
    16.6  非同步上下文管理器
    16.7  非同步生成器
    16.8  其他非同步概念
    16.9  本章小結
  第17章  線程和並行
    17.1  線程
      17.1.1  併發vs並行
      17.1.2  基本線程
      17.1.3  超時
      17.1.4  守護線程
      17.1.5  futures和執行器
      17.1.6  futures的超時
    17.2  條件競爭

      17.2.1  條件競爭示例
      17.2.2  用ThreadPoolExecutor創建多線程
    17.3  鎖
    17.4  死鎖、活鎖和飢鎖
    17.5  用隊列傳遞消息
    17.6  多工作線程的future
    17.7  多進程實現並行
      17.7.1  序列化數據
      17.7.2  加速注意事項和ProcessPoolExecutor
    17.8  生產者 消費者問題
      17.8.1  導入模塊
      17.8.2  監視隊列
      17.8.3  子進程清理
      17.8.4  消費者
      17.8.5  檢查空隊列
      17.8.6  生產者
      17.8.7  啟動進程
      17.8.8  性能結果
      17.8.9  多進程日誌
    17.9  本章小結
第五部分  超越代碼
  第18章  打包和分發
    18.1  規劃打包
      18.1.1  貨物崇拜式編程的危險
      18.1.2  關於打包的觀點
      18.1.3  確定打包目標
    18.2  項目結構:src或src-less
    18.3  用setuptools打包和分發
      18.3.1  項目文件和結構
      18.3.2  元數據歸屬
      18.3.3  README.md和LICENSE文檔
      18.3.4  setup.cfg文件
      18.3.5  setup.py文件
      18.3.6  MANIFEST.in文件
      18.3.7  requirements.txt文件
      18.3.8  pyproject.toml文件
      18.3.9  測試配置的設置
    18.4  構建你的包
    18.5  發布到pip
      18.5.1  上傳到TestPyPI
      18.5.2  安裝你上傳的包
      18.5.3  上傳到PyPI
    18.6  其他打包工具
      18.6.1  Poetry
      18.6.2  Flit
    18.7  分發給最終用戶
      18.7.1  PEX
      18.7.2  凍結器
      18.7.3  鏡像和容器
      18.7.4  原生Linux包注意事項

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032