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 unicode特性
Nov 28 Python
python实现分页效果
Oct 25 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Python 串口读写的实现方法
Jun 12 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
简述python Scrapy框架
Aug 17 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
Python 全局空间和局部空间
Apr 06 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判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python字符编码判断方法分析
2016/07/01 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
通过python爬虫赚钱的方法
2019/01/29 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
python groupby 函数 as_index详解
2019/12/16 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
总经理秘书的岗位职责
2013/12/27 职场文书
初中学校军训方案
2014/05/09 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
2014年政工师工作总结
2014/12/18 职场文书
安全承诺书格式范本
2015/04/28 职场文书
军训通讯稿范文
2015/07/18 职场文书
商业计划书之服装
2019/09/09 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
python实现局部图像放大
2021/11/17 Python