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 cookielib 登录人人网的实现代码
Dec 19 Python
Pyramid添加Middleware的方法实例
Nov 27 Python
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
详解python中的json的基本使用方法
Dec 21 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
儿童python练习实例
May 27 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python类中self参数用法详解
Feb 13 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 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
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
前端必学之PHP语法基础
2016/01/01 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python基于贪心算法解决背包问题示例
2017/11/27 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
教师的实习鉴定
2013/12/15 职场文书
解除合同协议书
2014/04/17 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
运动会开幕词
2015/01/28 职场文书
如何写辞职信
2015/05/13 职场文书
党员转正意见怎么写
2015/06/03 职场文书
焦点访谈观后感
2015/06/11 职场文书
公司财务管理制度
2015/08/04 职场文书
外出培训学习心得体会
2016/01/18 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL