Rumah > pembangunan bahagian belakang > Tutorial Python > Python模块之string.py介绍

Python模块之string.py介绍

高洛峰
Lepaskan: 2017-03-12 10:21:39
asal
1280 orang telah melayarinya

这篇文章讲述Python模块之string.py介绍

用法

  1. 字符串常量

    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!"#$%&'()*+,-
    ./:;<=>?@[\]^_`{|}~
Salin selepas log masuk

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))
Salin selepas log masuk

然后,在python命令行中输入:

$ python string_template.py
Salin selepas log masuk

结果

TEMPLATE:
Variable        : foo
Escape          : $
Variable in text: fooiable

INTERPOLATION:
Variable        : foo
Escape          : %
Variable in text: fooiable

FORMAT:
Variable        : foo
Escape          : {}
Salin selepas log masuk

可以看到三者之间都可以起到对字符串里进行格式化的效果。只是三者的修饰符不一样。Template类好的一点就是其可以通过继承类,实例化后自定义其修饰符,并且也可以对变量的名字格式进行正则表达式的定义。如string_template_advanced.py示例:

import string
Salin selepas log masuk
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))
Salin selepas log masuk

首先,解释下上面python文件。里面定义了一个类MyTemplate,继承了string的Template类,然后,对其两个域进行重载: Delimiter为修饰符,现在指定为了‘%’,而不是之前的‘$’。 接着,idpattern是对变量的格式指定。

结果

$ python string_template_advanced.py
Modified ID pattern:

    Delimiter : %
    Replaced  : replaced
    Igonred   : %notunderscored
Salin selepas log masuk

为什么notunderscored没有被替换呢?原因是我们在类定义的时候,idpattern里指定要出现下划线'_', 而该变量名并没有下划线,故替代不了。

Atas ialah kandungan terperinci Python模块之string.py介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan