Python 模塊 string-常量和模板

模塊 string 包含一些有用的常量和類處理字符串。

常量

ascii_letters 是一個包含所有字母的大小寫的字符串,它合併了 ascii_lowercase, ascii_uppercaseascii_lowercase 所有小寫的字符 abcdefghijklmnopqrstuvwxyzascii_uppercase 所有大寫的字符 ABCDEFGHIJKLMNOPQRSTUVWXYZdigits 所有數字 0123456789hexdigits 所有16進制的字符 0123456789abcdefABCDEFoctdigits 所有8進制數字 01234567punctuation 包含所有 ASCII 認為的標點符號的字符串whitespace 包含所有 ASCII 認為的空白符printable 包含所有 ASCII 可打印的字符串,它合併了 digits, ascii_letters, punctuation, whitespace

執行:

函數

函數 capwords() 大寫字符串中的每個單詞。

執行:

模板 Templates

字符串模板在 PEP 292 添加進來,使用模板,可以很方便的進行變量的替換,變量名前使用 $ 美元符號作為前綴,例如 $var,也可以使用花括號和其他字符隔離開 ${var}。

下面的代碼完成了一個簡單的變量替換。

執行:

如果想輸出特殊字符 $,需要使用兩個 $$ 進行轉義,類似正則表達式的 \。

執行:

使用字符串模板和使用 format() 方法的區別是,模板只是負責替換,沒有格式化的功能,而 format() 支持類型轉換、對齊、屬性和字段引用和特殊類型的格式化選項等等。

替換操作調用的是 substitute() 方法,它必須在字典中指出所有的變量替換,如果模板中有的變量沒有指定,會觸發 KeyError 錯誤。使用 safe_substutute() 不會觸發錯誤。

執行:

模板高級操作

string.Template 可以通過繼承修改默認的行為,例如修改變量前綴和變量的正則表達式匹配。

執行:

這裡例子中,把變量前綴改成了 %,變量名規則 idpattern 修改了必須包含下劃線才替換。