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脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python 对象中的数据类型
May 13 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
解决python文件双击运行秒退的问题
Jun 24 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
django 模型字段设置默认值代码
Jul 15 Python
Python return语句如何实现结果返回调用
Oct 15 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版(1)
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
php开发文档 会员收费1期
2012/08/14 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
简述php环境搭建与配置
2016/12/05 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
python实现随机森林random forest的原理及方法
2017/12/21 Python
python2.7安装图文教程
2018/03/13 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
美国社交购物市场:MassGenie
2019/02/18 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
公共场所禁烟标语
2014/06/25 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
活着观后感
2015/06/03 职场文书
文艺演出主持词
2015/07/01 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js