Python中的模組string.py

不言
發布: 2018-06-01 16:41:49
原創
1040 人瀏覽過

這篇文章主要介紹了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
!"#$%&&#39;()*+,-./:;<=>?@[\]^_`{|}~
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&&#39;()*+,-
 ./:;<=>?@[\]^_`{|}~
登入後複製

#二、Template類別:

其實,Template類,可以和格式化字串的用法還有字串物件的format()方法做對比,可以幫助更好地理解。首先,新建一個python檔案:string_template.py,

#然後在裡面寫入以下內容:

import string

values = {&#39;var&#39;: &#39;foo&#39;}

t = string.Template("""
Variable : $var
Escape  : $$
Variable in text: ${var}iable
""")

print(&#39;TEMPLATE:&#39;, t.substitute(values))

s = """
Variable : %(var)s
Escape  : %%
Variable in text: %(var)siable
"""

print(&#39;INTERPOLATION:&#39;, s % values)

s = """
Variable : {var}
Escape  : {{}}
Variable in text: {var}iable
"""

print(&#39;FORMAT:&#39;, 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 = &#39;%&#39;
 idpattern = &#39;[a-z]+_[a-z]+&#39;


template_text = &#39;&#39;&#39;
 Delimiter : %%
 Replaced : %with_underscore
 Igonred : %notunderscored
&#39;&#39;&#39;


d = {
 &#39;with_underscore&#39;: &#39;replaced&#39;,
 &#39;notunderscored&#39;: &#39;not replaced&#39;,
}

t = MyTemplate(template_text)
print(&#39;Modified ID pattern:&#39;)
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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板