一、用法
字符串常量:
1
2
3
4
5
6
7
8
9
10
|
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) |
結(jié)果
1
2
3
4
5
6
7
8
9
|
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 0123456789abcdefABCDEF 01234567 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,- ./:;<=>?@[\]^_`{|}~ |
二、Template類:
其實(shí),Template類,可以和格式化字符串的用法還有字符串對(duì)象的format()
方法做對(duì)比,可以幫助更好地理解。首先,新建一個(gè)python文件:string_template.py
,
然后在里面寫入以下內(nèi)容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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命令行中輸入:
1
|
$ python string_template.py |
結(jié)果
1
2
3
4
5
6
7
8
9
10
11
12
13
|
TEMPLATE: Variable : foo Escape : $ Variable in text: fooiable INTERPOLATION: Variable : foo Escape : % Variable in text: fooiable FORMAT : Variable : foo Escape : {} |
可以看到三者之間都可以起到對(duì)字符串里進(jìn)行格式化的效果。只是三者的修飾符不一樣。Template類好的一點(diǎn)就是其可以通過繼承類,實(shí)例化后自定義其修飾符,并且也可以對(duì)變量的名字格式進(jìn)行正則表達(dá)式的定義。
如string_template_advanced.py示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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文件。里面定義了一個(gè)類MyTemplate,繼承了string的Template類,然后,對(duì)其兩個(gè)域進(jìn)行重載: Delimiter為修飾符,現(xiàn)在指定為了‘%',而不是之前的‘$'。 接著,idpattern是對(duì)變量的格式指定。
結(jié)果
1
2
3
4
5
6
|
$ python string_template_advanced.py Modified ID pattern: Delimiter : % Replaced : replaced Igonred : % notunderscored |
為什么notunderscored沒有被替換呢?原因是我們?cè)陬惗x的時(shí)候,idpattern里指定要出現(xiàn)下劃線'_', 而該變量名并沒有下劃線,故替代不了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。