PHP前端开发

Python中的模块string.py

百变鹏仔 3小时前 #Python
文章标签 模块

这篇文章主要介绍了python中模块之string.py的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

一、用法

字符串常量:

import stringprint(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)

结果

立即学习“Python免费学习笔记(深入)”;

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789abcdefABCDEF01234567!"#$%&'()*+,-./:;?@[]^_`{|}~0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,- ./:;?@[]^_`{|}~

二、Template类:

其实,Template类,可以和格式化字符串的用法还有字符串对象的format()方法做对比,可以帮助更好地理解。首先,新建一个python文件:string_template.py,

然后在里面写入以下内容:

import stringvalues = {'var': 'foo'}t = string.Template("""Variable : $varEscape  : $$Variable in text: ${var}iable""")print('TEMPLATE:', t.substitute(values))s = """Variable : %(var)sEscape  : %%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

结果

立即学习“Python免费学习笔记(深入)”;

TEMPLATE:Variable : fooEscape  : $Variable in text: fooiableINTERPOLATION:Variable : fooEscape  : %Variable in text: fooiableFORMAT:Variable : fooEscape  : {}

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

如string_template_advanced.py示例:

import stringclass 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免费学习笔记(深入)”;

$ python string_template_advanced.pyModified ID pattern: Delimiter : % Replaced : replaced Igonred : %notunderscored

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