Python中模块string.py详解


Posted in Python onMarch 12, 2017

一、用法

字符串常量:

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

二、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))

然后,在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 = '%'
 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 string_template_advanced.py
Modified ID pattern:

 Delimiter : %
 Replaced : replaced
 Igonred : %notunderscored

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现线程池的方法
Jun 30 Python
Python实现的下载网页源码功能示例
Jun 13 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
Python文件的读写和异常代码示例
Oct 31 Python
Django model序列化为json的方法示例
Oct 16 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
Python中如何引入第三方模块
May 27 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
Python中第三方库Requests库的高级用法详解
Mar 12 #Python
python 获取网页编码方式实现代码
Mar 11 #Python
python 爬虫出现403禁止访问错误详解
Mar 11 #Python
Python如何读取MySQL数据库表数据
Mar 11 #Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 #Python
Python搭建HTTP服务器和FTP服务器
Mar 09 #Python
开源Web应用框架Django图文教程
Mar 09 #Python
You might like
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
php intval函数用法总结
2019/04/14 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
JavaScript类库D
2010/10/24 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
js模块加载方式浅析
2017/08/12 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
python模块之StringIO使用示例
2015/04/08 Python
给Python入门者的一些编程建议
2015/06/15 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Django中的Signal代码详解
2018/02/05 Python
python实现按长宽比缩放图片
2018/06/07 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
社会实践评语
2014/04/28 职场文书
环境整治工作方案
2014/05/18 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
分析并发编程之LongAdder原理
2021/06/29 Java/Android
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server