首頁  >  文章  >  後端開發  >  Python模組之string.py介紹

Python模組之string.py介紹

高洛峰
高洛峰原創
2017-03-12 10:21:391262瀏覽

這篇文章敘述Python模組之string.py介紹

用法

  1. ##字串常數

    import string

    print(string.ascii_lowercase)print(string. ascii_uppercase)
    print(string.ascii_letters)
    print(string.di
    gits)print(string.hexdigits)
    print(string.octdigits)
    print (string.punctuation)
    print(string.printable)

#結果

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
01234567
!"#$%&'()*+,-./:;96b4fef55684b9312718d5de63fb7121?@[\]^_`{|}~
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
    ./:;96b4fef55684b9312718d5de63fb7121?@[\]^_`{|}~
1.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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn