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练习程序批量修改文件名
Jan 16 Python
python解析中国天气网的天气数据
Mar 21 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
利用Python实现Windows定时关机功能
Mar 21 Python
Python网络编程详解
Oct 31 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
python3.4实现邮件发送功能
May 28 Python
python从内存地址上加载python对象过程详解
Jan 08 Python
python中rc1什么意思
Jun 19 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
python安装twisted的问题解析
2018/08/21 Python
pytorch permute维度转换方法
2018/12/14 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
html5表单的required属性使用
2021/07/07 HTML / CSS
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android