這篇文章主要介紹了Python中模組之string.py的相關資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
一、用法
#字串常數:
import string print(string.ascii_lowercase) print(string.ascii_uppercase) print(string.ascii_letters) print(string.digits) print(string.hexdigits) print(string.octdigits) print(string.punctuation) print(string.printable)
結果
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 0123456789abcdefABCDEF 01234567 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,- ./:;<=>?@[\]^_`{|}~
#二、Template類別:
其實,Template類,可以和格式化字串的用法還有字串物件的format()
方法做對比,可以幫助更好地理解。首先,新建一個python檔案:string_template.py
,
#然後在裡面寫入以下內容:
import string values = {'var': 'foo'} t = string.Template(""" Variable : $var Escape : $$ Variable in text: ${var}iable """) print('TEMPLATE:', t.substitute(values)) s = """ Variable : %(var)s Escape : %% Variable in text: %(var)siable """ print('INTERPOLATION:', s % values) s = """ Variable : {var} Escape : {{}} Variable in text: {var}iable """ print('FORMAT:', s.format(**values))
#然後,在python命令列中輸入:
$ python string_template.py
#結果
##
TEMPLATE: Variable : foo Escape : $ Variable in text: fooiable INTERPOLATION: Variable : foo Escape : % Variable in text: fooiable FORMAT: Variable : foo Escape : {}可以看到三者之間都可以起到對字串裡進行格式化的效果。只是三者的修飾符不一樣。 Template類別好的一點就是其可以透過繼承類,實例化後自訂其修飾符,也可以對變數的名字格式進行正規表示式的定義。
如string_template_advanced.py範例:
#
import string class MyTemplate(string.Template): delimiter = '%' idpattern = '[a-z]+_[a-z]+' template_text = ''' Delimiter : %% Replaced : %with_underscore Igonred : %notunderscored ''' d = { 'with_underscore': 'replaced', 'notunderscored': 'not replaced', } t = MyTemplate(template_text) print('Modified ID pattern:') print(t.safe_substitute(d))首先,解釋下上面python檔案。裡面定義了一個類MyTemplate,繼承了string的Template類,然後,對其兩個域進行重載: Delimiter為修飾符,現在指定為了‘%',而不是之前的‘$'。接著,idpattern是對變數的格式指定。
結果
$ python string_template_advanced.py Modified ID pattern: Delimiter : % Replaced : replaced Igonred : %notunderscored為什麼notunderscored沒有被取代呢?原因是我們在類別定義的時候,idpattern裡指定要出現下劃線'_', 而該變數名並沒有下劃線,故替代不了。
以上是Python中的模組string.py的詳細內容。更多資訊請關注PHP中文網其他相關文章!