当前位置:Gxlcms > Python > Python中的模块string.py

Python中的模块string.py

时间:2021-07-01 10:21:17 帮助过:33人阅读

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

一、用法

字符串常量:

  1. import string
  2. print(string.ascii_lowercase)
  3. print(string.ascii_uppercase)
  4. print(string.ascii_letters)
  5. print(string.digits)
  6. print(string.hexdigits)
  7. print(string.octdigits)
  8. print(string.punctuation)
  9. print(string.printable)

结果

  1. abcdefghijklmnopqrstuvwxyz
  2. ABCDEFGHIJKLMNOPQRSTUVWXYZ
  3. abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  4. 0123456789
  5. 0123456789abcdefABCDEF
  6. 01234567
  7. !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  8. 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
  9. ./:;<=>?@[\]^_`{|}~

二、Template类:

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

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

  1. import string
  2. values = {'var': 'foo'}
  3. t = string.Template("""
  4. Variable : $var
  5. Escape : $$
  6. Variable in text: ${var}iable
  7. """)
  8. print('TEMPLATE:', t.substitute(values))
  9. s = """
  10. Variable : %(var)s
  11. Escape : %%
  12. Variable in text: %(var)siable
  13. """
  14. print('INTERPOLATION:', s % values)
  15. s = """
  16. Variable : {var}
  17. Escape : {{}}
  18. Variable in text: {var}iable
  19. """
  20. print('FORMAT:', s.format(**values))

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

  1. $ python string_template.py

结果

  1. TEMPLATE:
  2. Variable : foo
  3. Escape : $
  4. Variable in text: fooiable
  5. INTERPOLATION:
  6. Variable : foo
  7. Escape : %
  8. Variable in text: fooiable
  9. FORMAT:
  10. Variable : foo
  11. Escape : {}

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

如string_template_advanced.py示例:

  1. import string
  2. class MyTemplate(string.Template):
  3. delimiter = '%'
  4. idpattern = '[a-z]+_[a-z]+'
  5. template_text = '''
  6. Delimiter : %%
  7. Replaced : %with_underscore
  8. Igonred : %notunderscored
  9. '''
  10. d = {
  11. 'with_underscore': 'replaced',
  12. 'notunderscored': 'not replaced',
  13. }
  14. t = MyTemplate(template_text)
  15. print('Modified ID pattern:')
  16. print(t.safe_substitute(d))

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

结果

  1. $ python string_template_advanced.py
  2. Modified ID pattern:
  3. Delimiter : %
  4. Replaced : replaced
  5. Igonred : %notunderscored

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

以上就是Python中的模块string.py的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行