Python風格徹底研究|超詳實、好理解的Python必學主題

    多位Python官方社群的大神技術審校和推薦 教您寫出Python風格的專業程式碼

    Collecting
    US$30.75

    內容簡介


    多位Python官方社群的大神技術審校和推薦
    教您寫出Python風格的專業程式碼

    本書全面介紹了Python語言的每項功能,為渴望寫出一流程式碼的程式設計師提供完整的學習指引。讀者將從本書深入研究慣用的Python模式,不必重新學習基礎的電腦程式設計主題,讓讀者可以立即寫出專業的Python程式。

    快速掌握Python的基本語法並設定完整的程式設計環境之後,您將會學習使用Python的動態資料型別、掌握Python對函數式和物件導向程式設計技術的支援、產生器運算式等特殊功能以及並行等進階主題。您還會學到如何對程式專案進行套裝處理、發布、除錯和測試。

    本書內容:
    ‧利用Python的動態型別來產生更乾淨簡潔、更具適應性的程式碼
    ‧利用先進的迭代技術來建立和處理您的資料
    ‧設計類別與函式,使其在運作時不會出現不必要的意外或限制
    ‧使用多重繼承和自省(自我檢查)來設計編寫出更能直接運作的類別程式
    ‧透過非同步、並行和平行等功能提高程式碼的回應能力和效能
    ‧建構Python專案以進行上線生產等級的測試和發布

    《Python風格徹底研究》一書應該是最符合Python風格的基礎程式設計讀本,本書會帶領您掌握真正符合Python風格的基礎知識,然後逐步學習和設計編寫出能上線發布使用的專業應用程式。

    作者介紹


    Jason C. McDonald 是一位軟體開發工程師、講師和小說作家、文字工作者。白天,他擔任軟體工程師的工作。夜晚,他是MousePaw Media的創辦人,這是一家開放原始碼(開源)軟體的公司,他在那裡教授和培育軟體開發的新手。一般來說,您可以在他最喜歡的咖啡店裡找到他。

    目錄


    PART I Python 環境
    第 1 章 Python 哲理
    第 2 章 您的開發環境
    第 3 章 語法課程
    第 4 章 專案結構與引入

    PART II 必學的基本結構
    第 5 章 變數與型別
    第 6 章 函式與lambda
    第 7 章 物件與類別
    第 8 章 錯誤和例外處理

    PART III 資料與流程
    第 9 章 集合與迭代
    第 10 章 產生器與綜合運算
    第 11 章 文字輸入輸出和情境管理器
    第 12 章 2 進位與序列化的處理

    PART IV 進階概念
    第 13 章 繼承和混入
    第 14 章 元類別和抽象基底類別
    第 15 章 內省和泛型
    第 16 章 非同步與並行
    第 17 章 執行緒與平行

    PART V 程式碼之外的議題
    第 18 章 套裝與發布
    第 19 章 除錯與記錄
    第 20 章 測試與效能分析
    第 21 章 未來的路徑

    附錄 A 特殊屬性和方法
    附錄 B Python 除錯器(PDB)命令
    詞彙術語

    Content

    1-1封面頁
    1-2書名頁
    1-3作者簡介
    1-4技術審校者簡介
    1-5前言
    1-6致謝
    1-7簡介
    1-8目錄
    1-9PART IPython 環境
    1-10Ch01 Python 哲理
    1-11Python 究竟是什麼?
    1-12對Python 的誤解迷思
    1-13迷思#1:Python 只是一套腳本語言
    1-14迷思#2:Python 很慢
    1-15迷思#3:Python 不能編譯
    1-16迷思#4:Python 在幕後進行編譯
    1-17迷思#5:Python 不適合大型專案
    1-18Python 2 與Python 3
    1-19定義「Python 風格(Pythonic)」的程式碼
    1-20Python 之禪
    1-21說明文件、PEP 和您
    1-22誰說了算?
    1-23Python 社群
    1-24追求明確的做法
    1-25總結
    1-26Ch02 您的開發環境
    1-27安裝Python
    1-28在Windows 中安裝
    1-29在macOS 中安裝
    1-30在Linux 中安裝
    1-31以原始程式碼來安裝
    1-32使用直譯器
    1-33互動對話
    1-34執行Python 程式檔
    1-35套件和虛擬環境
    1-36建立虛擬環境
    1-37啟用虛擬環境
    1-38離開虛擬環境
    1-39簡介pip
    1-40系統範圍的套件
    1-41安裝套件
    1-42requirements.txt
    1-43套件更新
    1-44移除套件
    1-45找出要想的套件
    1-46關於pip 要特別留意的警告⋯
    1-47虛擬環境與Git
    1-48檔案中Shebang 的情況
    1-49檔案編碼
    1-50一些額外的虛擬環境使用技巧
    1-51使用沒有啟用的虛擬環境
    1-52其他選擇
    1-53PEP 8 簡介
    1-54每行程式碼的字元限制
    1-55定位點或是空格?
    1-56品質控制:靜態分析工具
    1-57Pylint
    1-58Flake8
    1-59Mypy
    1-60Style Janitors:自動格式化工具
    1-61autopep8
    1-62Black
    1-63測試框架
    1-64導覽各種程式碼編輯器
    1-65IDLE
    1-66Emacs 與Vim
    1-67PyCharm
    1-68Visual Studio Code
    1-69Sublime Text
    1-70Spyder
    1-71Eclipse + PyDev/LiClipse
    1-72The Eric Python IDE
    1-73總結
    1-74Ch03 語法課程
    1-75Hello, World!
    1-76陳述式與運算式
    1-77空白的重要性
    1-78什麼都不做
    1-79注釋與說明字串
    1-80說明字串
    1-81宣告變數
    1-82常數要怎麼用?
    1-83數學運算
    1-84認識數值型別
    1-85運算子
    1-86math 模組
    1-87邏輯運算
    1-88條件
    1-89比較運算子
    1-90布林、None 和識別運算子
    1-91真值
    1-92邏輯運算子
    1-93海象運算子
    1-94省略符號
    1-95字串
    1-96字串字面值
    1-97原始字串
    1-98格式化字串
    1-99樣板字串
    1-100字串轉換
    1-101關於字串連接的注意事項
    1-102函式
    1-103類別與物件
    1-104錯誤處理
    1-105元組與串列
    1-106迴圈
    1-107while 迴圈
    1-108迴圈控制
    1-109for 迴圈
    1-110結構化模式比對
    1-111字面值模式和萬用字元
    1-112Or 模式
    1-113捕捉模式
    1-114守衛陳述式
    1-115更多關於結構化模式比對的內容
    1-116總結
    1-117Ch04 專案結構與引入
    1-118設定儲存庫
    1-119模組和套件
    1-120PEP 8 與命名規範
    1-121專案目錄結構
    1-122import 的工作原理
    1-123import 能做和不能做的事項
    1-124從模組引入函式
    1-125遮蔽的問題
    1-126巢狀套件的問題
    1-127小心使用import *
    1-128在您的專案中引入
    1-129以絕對位置來引入
    1-130以相對位置來引入
    1-131從相同的套件中引入
    1-132入口點
    1-133模組入口點
    1-134套件入口點
    1-135控制套件引入
    1-136程式入口點
    1-137Python 模組搜尋路徑
    1-138真實的運作原理
    1-139總結
    1-140PART II必學的基本結構
    1-141Ch05 變數與型別
    1-142在Python 中的變數:名稱與值
    1-143指定
    1-144資料型別
    1-145type() 函式
    1-146鴨子型別(duck typing)
    1-147作用域與垃圾回收
    1-148區域範圍和參照計數垃圾回收器
    1-149直譯器關閉
    1-150全域作用域
    1-151全域作用域的危險之處
    1-152nonlocal 關鍵字
    1-153作用域的解析
    1-154類別的奇怪案例
    1-155世代式垃圾回收器
    1-156不變的事實
    1-157透過指定傳遞
    1-158集合與參照
    1-159淺複製
    1-160深複製
    1-161強制轉型與轉換
    1-162關於系統匈牙利命名法的注意事項
    1-163術語回顧
    1-164總結
    1-165Ch06 函式與lambda
    1-166Python 函式基礎知識
    1-167遞迴
    1-168預設引數值
    1-169關鍵字引數
    1-170多載函式
    1-171可變引數
    1-172關鍵字可變引數
    1-173僅限關鍵字參數
    1-174僅限位置參數
    1-175引數型別:現在都放在一起!
    1-176巢狀函式
    1-177閉包
    1-178以閉包來遞迴
    1-179有狀態的閉包
    1-180Lambdas 的運用
    1-181為什麼lambda 很有用?
    1-182把lambdas 當作排序鍵
    1-183裝飾器
    1-184型別提示與函式註釋
    1-185鴨子型別與型別提示
    1-186您應該使用型別提示嗎?
    1-187總結
    1-188Ch07 物件與類別
    1-189宣告類別
    1-190初始化方法
    1-191建構方法
    1-192終結方法
    1-193屬性
    1-194實例屬性
    1-195類別屬性
    1-196作用域的命名慣例
    1-197非公開
    1-198公開
    1-199名稱改編
    1-200何時使用公開、非公開或是名稱改編?
    1-201方法
    1-202實例方法
    1-203類別方法
    1-204靜態方法
    1-205特性
    1-206設定場景
    1-207定義特性
    1-208使用裝飾器的特性
    1-209不使用property 的時機
    1-210特殊方法
    1-211場景設定
    1-212轉換方法
    1-213比較方法
    1-214二元運算子的支援
    1-215單元運算子的支援
    1-216製作可呼叫物件
    1-217更多特殊方法:向前看
    1-218類別裝飾器
    1-219與物件的結構化模式比對匹配
    1-220當函數式遇見物件導向
    1-221使用類別的時機
    1-222類別不是模組
    1-223單一職責
    1-224分享狀態
    1-225物件真的適合您嗎?
    1-226總結
    1-227Ch08 錯誤和例外處理
    1-228在Python 中的例外
    1-229閱讀Traceback 的內容
    1-230捕捉例外:LBYL vs. EAFP
    1-231多重例外
    1-232小心Diaper 反面模式
    1-233引發例外
    1-234使用例外
    1-235例外與日誌記錄
    1-236冒泡技巧
    1-237例外鏈
    1-238Else 和Finally
    1-239Else:「如果一切都順利」
    1-240Finally:「一切之後」
    1-241建立例外
    1-242各種例外的展示
    1-243總結
    1-244PART III資料與流程
    1-245Ch09 集合與迭代
    1-246迴圈
    1-247while 迴圈
    1-248for 迴圈
    1-249集合
    1-250元組
    1-251附名元組
    1-252串列
    1-253雙向佇列
    1-254集合
    1-255frozenset
    1-256字典
    1-257檢查或是排除?
    1-258字典變體應用
    1-259拆解集合
    1-260星號運算式
    1-261拆解字典
    1-262集合的結構化模式比對
    1-263由索引或鍵來存取
    1-264切片表示法
    1-265切片的起算和結束
    1-266負值索引下標
    1-267切片的跳隔幅度
    1-268複製切片
    1-269slice 物件
    1-270在自訂物件上切片
    1-271使用islice
    1-272in 運算子
    1-273檢查集合的長度
    1-274迭代
    1-275可迭代物件和迭代器
    1-276手動使用迭代器
    1-277使用for 迴圈來進行迭代
    1-278在迴圈中排序集合
    1-279列舉迴圈
    1-280迴圈中的變更
    1-281迴圈的巢狀嵌套與替代方案
    1-282迭代工具
    1-283基本內建工具
    1-284Filter
    1-285Map
    1-286Zip
    1-287Itertools
    1-288自訂可迭代類別
    1-289總結
    1-290Ch10 產生器與綜合運算
    1-291惰性求值與積極的可迭代物件
    1-292無限迭代器
    1-293產生器
    1-294產生器與迭代器類別
    1-295關閉產生器
    1-296關閉的動作
    1-297丟出例外
    1-298使用yield from
    1-299產生器運算式
    1-300產生器物件是有隋性的
    1-301使用多重迴圈的產生器運算式
    1-302在產生器運算式中的條件式
    1-303巢狀產生器運算式
    1-304串列綜合運算
    1-305集合綜合運算
    1-306字典綜合運算
    1-307產生器運算式的危險性
    1-308很快就變得難以閱讀
    1-309不能取代迴圈
    1-310很難除錯
    1-311使用產生器運算式的時機
    1-312簡易型協程
    1-313從協程返回值
    1-314行為的順序
    1-315什麼是非同步?
    1-316總結
    1-317Ch11 文字輸入輸出和情境管理器
    1-318標準的輸入與輸出
    1-319再探print() 功能
    1-320再探input() 函式
    1-321串流
    1-322情境管理器基礎概念
    1-323檔案模式
    1-324讀取檔案
    1-325read() 方法
    1-326readline() 方法
    1-327readlines() 方法
    1-328以迭代來讀取
    1-329串流位置
    1-330寫入檔案
    1-331write() 方法
    1-332writelines() 方法
    1-333使用print() 寫入檔案
    1-334換行分隔符號
    1-335情境管理器的細節
    1-336情境管理器的原理
    1-337使用多重情境管理器
    1-338實作情境管理協定
    1-339__enter__() 方法
    1-340__exit__() 方法
    1-341使用自訂類別
    1-342路徑
    1-343路徑物件
    1-344路徑的組成部分
    1-345建立路徑
    1-346相對路徑
    1-347套件的相對路徑
    1-348Path 的相關操作
    1-349非原地檔案寫入
    1-350os 模組
    1-351檔案格式
    1-352JSON
    1-353其他格式
    1-354總結
    1-355Ch12 2 進位與序列化的處理
    1-3562 進位表示法和位元運算
    1-357複習一下數字系統
    1-358Python 整數與2 進位
    1-359位元運算子
    1-360位元組字面值
    1-361類位元組物件
    1-362建立位元組物件
    1-363使用int.to_bytes()
    1-364序列操作
    1-365位元組轉換成整數
    1-366使用struct
    1-367struct 格式字串和打包
    1-368使用struct 解開資料
    1-369struct 物件
    1-370類位元組物件的位元運算操作
    1-371透過整數進行位元運算操作
    1-372透過迭代進行位元運算操作
    1-373使用memoryview
    1-374讀取與寫入2 進位資料
    1-375組織資料
    1-376寫入檔案
    1-377從2 進位檔讀取資料
    1-3782 進位串流中的移位處理
    1-379使用BufferedRWPair
    1-380序列化的技術
    1-381禁用工具:pickle、marshal 和shelve
    1-382序列化格式
    1-383總結
    1-384PART IV進階概念
    1-385Ch13 繼承和混入
    1-386繼承的使用時機
    1-387繼承的罪過
    1-388Python 繼承的基礎知識
    1-389多重繼承
    1-390方法解析順序
    1-391維持一致的方法解析順序
    1-392明確的解析順序
    1-393多重繼承中的解析基底類別
    1-394混入
    1-395總結
    1-396Ch14 元類別和抽象基底類別
    1-397元類別
    1-398使用type 建立類別
    1-399自訂元類別
    1-400透過鴨子型別來設定型別的期望
    1-401EAFP:捕捉例外
    1-402LBYL:檢查屬性
    1-403抽象類別
    1-404內建抽象基底類別
    1-405從抽象基底類別衍生
    1-406實作自訂抽象基底類別
    1-407虛擬子類別
    1-408設定範例
    1-409使用虛擬子類別
    1-410總結
    1-411Ch15 內省和泛型
    1-412特殊屬性
    1-413內部物件屬性存取:__dict__特殊屬性
    1-414列出屬性
    1-415取得屬性
    1-416檢查屬性
    1-417設定屬性
    1-418刪除屬性
    1-419函式屬性
    1-420函式屬性的錯誤用法
    1-421可變性和函數屬性
    1-422描述器
    1-423描述器協定
    1-424以錯誤的方式編寫描述器類別
    1-425使用描述器
    1-426以正確的方式編寫描述符類別
    1-427在同一個類別中使用多重描述器
    1-428Slots 的運用
    1-429將屬性名稱綁定到值
    1-430使用帶有Slots 的任意屬性
    1-431Slots 與繼承
    1-432不可變類別
    1-433單一調度泛型函式
    1-434使用型別提示登錄單一調度函式
    1-435使用顯式型別登錄單一調度函式
    1-436使用register() 方法登錄單一調度函式
    1-437使用Element 類別
    1-438任意執行
    1-439總結
    1-440Ch16 非同步與並行
    1-441在Python 中的非同步
    1-442範例場景:Collatz 遊戲,同步版本
    1-443非同步
    1-444原生協程
    1-445工作
    1-446事件迴圈
    1-447讓它真正非同步
    1-448排程與非同步執行流程
    1-449簡化程式碼
    1-450非同步迭代
    1-451非同步情境管理器
    1-452非同步產生器
    1-453其他非同步的概念
    1-454總結
    1-455Ch17 執行緒與平行
    1-456執行緒
    1-457並行與平行
    1-458基本的執行緒處理
    1-459逾時
    1-460Daemon 執行緒
    1-461Futures 和Executors
    1-462以Future 來處理逾時
    1-463競爭條件
    1-464競爭條件的範例
    1-465使用ThreadPoolExecutor 建立多個執行緒
    1-466鎖
    1-467死鎖、活鎖與飢餓
    1-468以佇列傳遞訊息
    1-469使用多重workers 執行緒的futures
    1-470以多行程來實現平行處理
    1-471醃漬資料
    1-472速度考量和ProcessPoolExecutor
    1-473Producer/Consumer 問題
    1-474引入模組
    1-475監控佇列
    1-476子行程的清理
    1-477Consumer
    1-478檢查空的佇列
    1-479Producer
    1-480啟動行程
    1-481效能結果
    1-482多行程處理的日誌記錄
    1-483總結
    1-484PART V程式碼之外的議題
    1-485Ch18 套裝與發布
    1-486規劃您的套裝處理
    1-487貨物崇拜程式設計的危險
    1-488套裝的說明
    1-489決定套裝的目標
    1-490專案結構:src 或src-less
    1-491使用setuptools 套裝發布套件
    1-492專案檔與結構
    1-493元資料的歸屬
    1-494README.md 和LICENSE 檔
    1-495setup.cfg 檔
    1-496setup.py 檔
    1-497MANIFEST.in 檔
    1-498requirements.txt 檔
    1-499pyproject.toml 檔
    1-500測試安裝設定配置
    1-501建置套件
    1-502發行到pip(Twine)
    1-503上傳到Test PyPI
    1-504安裝上傳的套件
    1-505上傳到PyPI
    1-506其他替代的套裝工具
    1-507Poetry
    1-508Flit
    1-509發布到終端使用者
    1-510PEX
    1-511Freezers
    1-512映像檔和容器
    1-513對原生Linux 套裝的補充說明
    1-514說明文件
    1-515總結
    1-516Ch19 除錯與記錄
    1-517警告
    1-518警告的類型
    1-519過濾警告
    1-520隱藏重複的警告
    1-521將警告轉換成例外
    1-522記錄
    1-523Logger 物件
    1-524Handler 物件
    1-525依不同級別來記錄
    1-526控制Log 級別
    1-527執行範例
    1-528Filter、Formatter 與配置設定
    1-529Assert 陳述式
    1-530正確使用assert
    1-531錯誤使用assert
    1-532觀看assert 的實際執行
    1-533inspect 模組
    1-534使用pdb
    1-535除錯範例
    1-536啟動除錯器
    1-537Debugger shell 模式的命令
    1-538逐步執行程式碼
    1-539設定中斷點並步進函式
    1-540穿越執行堆疊
    1-541檢查原始碼
    1-542檢查解決方案
    1-543事後剖析除錯
    1-544使用faulthandler
    1-545使用Bandit 評估程式的安全性
    1-546向Python 回報錯誤
    1-547總結
    1-548Ch20 測試與效能分析
    1-549測試驅動開發(TDD)
    1-550測試框架
    1-551範例專案
    1-552測試和專案結構
    1-553測試基礎
    1-554開始編寫範例
    1-555單元測試
    1-556以pytest 執行測試
    1-557例外測試
    1-558Test Fixtures 的運用
    1-559延續這個例子:API 的使用
    1-560在測試模組間共享資料
    1-561不穩定測試和有條件跳過測試
    1-562進階的Fixtures 工具:造假模擬和參數化
    1-563延續這個例子:代表打字的錯誤
    1-564參數化
    1-565Fixture 的間接參數化
    1-566使用Monkeypatch 進行輸入模擬
    1-567標記
    1-568從標準串流捕捉
    1-569GUI 測試
    1-570延續這個例子:連接API 到Typo
    1-571Autouse Fixtures
    1-572混合參數化
    1-573模糊測試
    1-574範例的總結
    1-575程式碼覆蓋率
    1-576使用tox 進行自動化測試
    1-577效能測試與效能分析
    1-578使用timeit 進行效能測試
    1-579使用cProfile 或profile 進行效能分析
    1-580tracemalloc
    1-581總結
    1-582Ch21 未來的路徑
    1-583關於未來
    1-584未來有哪些延伸的路徑?
    1-585Python 應用程式開發
    1-586Python 遊戲開發
    1-587Python 網頁開發
    1-588客戶端的Python
    1-589Python 的資料科學
    1-590Python 的機器學習
    1-591安全性
    1-592Python 的嵌入式開發
    1-593編寫腳本
    1-594Python 的偏好
    1-595參與Python 的開發
    1-596開發Python 套件和工具
    1-597開發Python 擴充模組
    1-598貢獻給Python
    1-599參與Python 社群
    1-600提問
    1-601回答問題
    1-602使用者團體
    1-603PyLadies 團體
    1-604研討會
    1-605加入Python 軟體基金會
    1-606這條路還很長⋯
    1-607附錄A 特殊屬性和方法
    1-608附錄B Python 除錯器(PDB)命令
    1-609詞彙術語
    1-610版權頁
    1-611封底頁

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Sales Plans