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和pyqt实现360的CLable控件
Feb 21 Python
Python多线程编程(二):启动线程的两种方法
Apr 05 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
Python编写Windows Service服务程序
Jan 04 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
Django实现跨域请求过程详解
Jul 25 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
深入了解Python 变量作用域
Jul 24 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数组键值用法实例分析
2015/02/27 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
Angular实现form自动布局
2016/01/28 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
python 实现归并排序算法
2012/06/05 Python
Python算法之栈(stack)的实现
2014/08/18 Python
python实现ping的方法
2015/07/06 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
反腐倡廉演讲稿
2014/05/22 职场文书
护理学专业求职信
2014/06/29 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
python数字图像处理:图像的绘制
2022/06/28 Python