Python 模块之 string.py
用法
字符串常量:
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 stringvalues = {'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: fooiableINTERPOLATION:
Variable : foo
Escape : %
Variable in text: fooiableFORMAT:
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_underscoreIgonred : %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 : replacedIgonred : %notunderscored
为什么notunderscored没有被替换呢?原因是我们在类定义的时候,idpattern里指定要出现下划线'_', 而该变量名并没有下划线,故替代不了。
转载于:https://www.cnblogs.com/brad1994/p/6536676.html
Python 模块之 string.py相关推荐
- Python模块包中__init__.py文件的作用(转载)
用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的意义,偶然看到对它的介绍吓一大跳,这个文件太重要了 模块包: 包通常总是一个目录,目录下为首的一个文 ...
- Python基础笔记_Day04_数据类型、math模块、random模块、string模块
Day04_数据类型.math模块.random模块.string模块 04.01_Python语言基础(Python中的数据类型)(了解) 04.02_Python语言基础(Num数据类型)(掌握) ...
- Python模块包中__init__.py文件的作用
2019独角兽企业重金招聘Python工程师标准>>> 在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自 ...
- python模块 init py_Python模块包中__init__.py文件的作用
在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很 ...
- python怎样导出py文件_导出python模块(到字符串或py文件)
摘要: 我想要一个'module'类型的变量并导出它.在 我使用import从.py文件导入python模块并对其进行更改.我需要将模块导出回一个文件,或者获取完整模块的字符串表示形式,然后将其写入磁 ...
- from import 导入时找不到module的解决办法(Python模块包中_init_.py文件的作用)
文章目录 背景 正文 Ⅰ.报错信息 Ⅱ.问题解决 Ⅲ.问题分析 Ⅳ._init_.py文件作用 背景 最近在使用Pycharm开发python脚本时,遇到这样一个现象:打开别人给的工程,环境配置都没有 ...
- python制作安装包_如何制作python安装模块(setup.py)
Python模块的安装方法: 1. 单文件模块:直接把文件拷贝到$python_dir/lib 2. 多文件模块,带setup.py:python setup.py install 3. egg文件, ...
- 【转载】如何制作python安装模块(setup.py)
2019独角兽企业重金招聘Python工程师标准>>> Python 模块的安装方法: 单文件模块:直接把文件拷贝到 $PYTHON_DIR/lib 多文件模块,且带有 setup. ...
- python模块文件的扩展名不一定是py_Python文件扩展名.py?.pyc?.pyd?
与Python相关的文件扩展名实际不止.py..pyc..pyd这三种,但这三种是最常见的,比如以Houdini 16.5.268的Python模块包路径搜索一下有哪些扩展名 与Python相关的只有 ...
最新文章
- 1.字母异位词分组(LeetCode第49题)
- BTC震荡调整后的新一轮爆发将要开启,BCH姿态逐渐明显
- Delegate成员变量和Event的区别
- python代码需要背吗-Python代码需要缩进吗
- 4分钟极速甩脂训练!抛开借口!繁忙族必备!
- Spring Boot 单元测试二三事
- 【机器学习】粗糙集属性约简算法与mRMR算法的本质区别
- KEIL 默认 char 是无符号的
- java重命名sheet失败_java jxl excel 数据导出 重新命名无效的工作表名称 | 学步园...
- 告别程序员生涯,一点感慨,与诸君共勉(转)
- VIM自动格式化C代码
- [react] 在react中无状态组件有什么运用场景
- ajax之深入解析(2)
- 矢量图和Word:EPS,PDF,EMF和SVG
- python类型检查_python【数据类型检查】
- 泛微e9隐藏明细表_泛微Ecology权限整理大全相当全要点
- 如何学习一门新技术(经验分享)
- 《Unity 3D人工智能编程》——2.2 子弹类
- 安卓软件定做-华为Mate7手机高配版和标准版的区别
- 全角和半角的区别及使用方式
热门文章
- 51nod 1623 完美消除(数位DP)
- if...else..的错误用法
- Linux下显示ip所属位置
- NEC学习 ---- 模块 - 带点文字链接列表
- EBS中Java并发程序笔记(1)
- Socket 死连接详解
- Java多线程复习_Java多线程复习
- 可以ping通 但ssh: connect to host 192.168.0.2 port 22: Connection refused
- 计算机没有程序,计算机小知识:想尝试写程序却没有电脑?这个在线编辑器满足你...
- debug=true开启自动配置报告