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根据时间生成mongodb的ObjectId的方法
Mar 13 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
详解Python字符串对象的实现
Dec 24 Python
Django中Model的使用方法教程
Mar 07 Python
python的concat等多种用法详解
Nov 28 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
Python数据库小程序源代码
Sep 15 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
Mar 27 Python
用Python将库打包发布到pypi
Apr 13 Python
Python实现单例模式的5种方法
Jun 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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
家长给孩子的表扬信
2014/01/17 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
公司请假条范文
2014/04/11 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js