模塊 string 包含一些有用的常量和類處理字符串。
常量
- ascii_letters 是一個包含所有字母的大小寫的字符串,它合併了 ascii_lowercase, ascii_uppercase
- ascii_lowercase 所有小寫的字符 abcdefghijklmnopqrstuvwxyz
- ascii_uppercase 所有大寫的字符 ABCDEFGHIJKLMNOPQRSTUVWXYZ
- digits 所有數字 0123456789
- hexdigits 所有16進制的字符 0123456789abcdefABCDEF
- octdigits 所有8進制數字 01234567
- punctuation 包含所有 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 修改了必須包含下劃線才替換。
閱讀更多 趣喜歡編程 的文章