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的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
python基础教程之基本数据类型和变量声明介绍
Aug 29 Python
在Python中使用元类的教程
Apr 28 Python
Python扩展内置类型详解
Mar 26 Python
Python print不能立即打印的解决方式
Feb 19 Python
Jupyter加载文件的实现方法
Apr 14 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
python让函数不返回结果的方法
Jun 22 Python
Python 没有main函数的原因
Jul 10 Python
Python 解析xml文件的示例
Sep 29 Python
python实现粒子群算法
Oct 15 Python
方法汇总:Python 安装第三方库常用
Apr 26 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安装问题
2006/10/09 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
Vue代码整洁之去重方法整理
2019/08/06 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
python 字典(dict)按键和值排序
2016/06/28 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
详解Python的三种可变参数
2019/05/08 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
django框架模板语言使用方法详解
2019/07/18 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
新文化运动的口号
2014/06/21 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js
浅谈Python魔法方法
2021/06/28 Java/Android
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android