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的print用法示例
Feb 11 Python
Python创建二维数组实例(关于list的一个小坑)
Nov 07 Python
Python对切片命名的实现方法
Oct 16 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
解决Django连接db遇到的问题
Aug 29 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
Django模型层实现多表关系创建和多表操作
Jul 21 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
javascript function、指针及内置对象
2009/02/19 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
小程序实现录音功能
2020/09/22 Javascript
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
财务工作者先进事迹材料
2014/01/17 职场文书
关于环保的建议书
2014/05/12 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers