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 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
Python 处理图片像素点的实例
Jan 08 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
Django REST framework内置路由用法
Jul 26 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python爬虫基础讲解之请求
May 13 Python
Python实现byte转integer
Jun 03 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/03/14 PHP
php实现Session存储到Redis
2015/11/11 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
python模块之StringIO使用示例
2015/04/08 Python
Python字符串切片操作知识详解
2016/03/28 Python
分享python数据统计的一些小技巧
2016/07/21 Python
django 单表操作实例详解
2019/07/30 Python
Python实现快速排序的方法详解
2019/10/25 Python
python可视化text()函数使用详解
2020/02/11 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
联想中国官方商城:Lenovo China
2017/10/18 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
刘胡兰的英雄事迹材料
2014/02/11 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
推荐信范文大全
2015/03/27 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏