作者:小鱼儿r6K2 | 来源:互联网 | 2017-05-14 02:44
这篇文章主要介绍了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为修饰符,现在指定为了‘%&#39;,而不是之前的‘$&#39;。 接着,idpattern是对变量的格式指定。
结果
$ python string_template_advanced.py
Modified ID pattern:
Delimiter : %
Replaced : replaced
Igonred : %notunderscored
为什么notunderscored没有被替换呢?原因是我们在类定义的时候,idpattern里指定要出现下划线&#39;_&#39;, 而该变量名并没有下划线,故替代不了。
以上就是Python中模块string.py详细说明的详细内容,更多请关注 第一PHP社区 其它相关文章!