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的设计模式编程入门指南
Apr 02 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
理解python正则表达式
Jan 15 Python
Python编程之event对象的用法实例分析
Mar 23 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Python实现简单的用户交互方法详解
Sep 25 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
python 提取html文本的方法
May 20 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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
把77A收信机改造成收音机
2021/03/02 无线电
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
详解js常用分割取字符串的方法
2019/05/15 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python实现的质因式分解算法示例
2018/05/03 Python
python模糊图片过滤的方法
2018/12/14 Python
django query模块
2019/04/20 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
入党积极分子思想汇报
2014/01/02 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
森林病虫害防治方案
2014/06/02 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
田径运动会广播稿
2015/08/19 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript