Python的 string 标准库保留了一些有用的函数和用于处理文本对象的类,现在我们来一起看一下Python的string标准库还有哪些我们不知道的有趣用法?

01、capwords()函数:将字符串中的所有单词大写

import string

s = 'The quick brown fox jumped over the lazy dog.'

print(s)

print(string.capwords(s))

输出:

The quick brown fox jumped over the lazy dog.

The Quick Brown Fox Jumped Over The Lazy Dog.

02、字符串模板

使用string.Template插值时,通过在名称前加上

var)来标识变量。另外,如果有必要将其与周围的文本区分开,还可以用花括号将它们包裹起来(例如${var})

使用$插值标记

import string

values = {'var': 'foo'}

t = string.Template("""Variable : $varEscape : $$Variable in text: ${var}iable""")

print('TEMPLATE:', t.substitute(values))

输出:

TEMPLATE:

Variable : foo

Escape : $

Variable in text: fooiable

使用%插值标记

import string

values = {'var': 'foo'}

s = """Variable :%(var)sEscape :%%Variable in text:%(var)siable"""

print('INTERPOLATION:', s % values)

输出:

INTERPOLATION:

Variable : foo

Escape : %

Variable in text: fooiable

使用{}插值标记

import string

values = {'var': 'foo'}

s = """Variable : {var}Escape : {{}}Variable in text: {var}iable"""

print('FORMAT:', s.format(**values))

输出:

FORMAT:

Variable : foo

Escape : {}

Variable in text: fooiable

模板和字符串插值或格式之间的一个关键区别是不用考虑参数的类型。将值转换为字符串,然后将字符串插入结果中。例如,无法控制用于表示浮点值的位数 但是,这样做的好处是,safe_substitute() 如果未将模板所需的所有值都作为参数提供,则使用该方法可以避免出现异常。

import string

values = {'var': 'foo'}

t = string.Template("$var is here but $missing is not provided")

try:

print('substitute() :', t.substitute(values))

except KeyError as err:

print('ERROR:', str(err))

print('safe_substitute():', t.safe_substitute(values))

输出:

ERROR: 'missing'

safe_substitute(): foo is here but $missing is not provided

03、高级文本模板

string.Template可以通过调整用于在模板主体中查找变量名称的正则表达式模式来更改其默认语法。例如更改类的delimiter和idpattern属性

import string

class MyTemplate(string.Template):

delimiter = '%'

idpattern = '[a-z]+_[a-z]+'

template_text = '''Delimiter :%%Replaced : %with_underscoreIgnored : %notunderscored'''

d = {

'with_underscore': 'replaced',

'notunderscored': 'not replaced',

}

t = MyTemplate(template_text)

print('Modified ID pattern:')

print(t.safe_substitute(d))

输出:

Modified ID pattern:

Delimiter : %

Replaced : replaced

Ignored : %notunderscored

04、标准库文本常量

string模块包括许多与ASCII和数字字符集有关的常量,这些常量在处理ASCII数据时很有用

import inspect

import string

def is_str(value):

return isinstance(value, str)

for name, value in inspect.getmembers(string, is_str):

if name.startswith('_'):

continue

print('%s=%r\n' % (name, value))

输出:

ascii_letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

ascii_lowercase='abcdefghijklmnopqrstuvwxyz'

ascii_uppercase='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

digits='0123456789'

hexdigits='0123456789abcdefABCDEF'

octdigits='01234567'

printable='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\t\n\r\x0b\x0c'

punctuation='!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

whitespace='\t\n\r\x0b\x0c'

今天和大家一起学习了Python中的标准库 string,大家都学会了吗? 欢迎大家关注,一起学习Python吧!

python字符串库函数_Python标准库概览(1):string相关推荐

  1. python随机库函数_python标准库中的随机分布函数

    random.random() 返回一个 随机的浮点数, 值域为 [0.0, 1.0] random.uniform(a, b) 均匀分布 返回一个随机的浮点数N, N的值在a与b之间 等同于 a + ...

  2. Python笔记 Ch.13 标准库概览

    标准库概览: 这里基本了解下Python的标准库, 看看这个内置的玩意还有啥好用的东西, 至少知道他在那里 文件&目录管理: shutil模块针对日常的文件和目录管理任务, 有点向是OS的简化 ...

  3. python文件管理包_Python标准库04 文件管理 (部分os包,shutil包)

    Python标准库04 文件管理 (部分os包,shutil包) 在操作系统下,用户可以通过操作系统的命令来管理文件,参考.Python 标准库则允许我们从 Python 内部管理文件.相同的目的,我 ...

  4. python groupby用法_Python 标准库实践之合并字典组成的列表

    作者 | 陈祥安 来源 | Python学习开发 最近做了个数据合并的需求这里记录下: 要求如下: dict_of_list1 = [{"name": "zhangsan ...

  5. print python 带回车_python标准库threading源码解读【二】

    紧接着上一篇文章继续解析源码 甘蔗:python标准库threading源码解读[一]​zhuanlan.zhihu.com 目录 Event的介绍和用法 Event源码解析 以后的内容尽量少一点并且 ...

  6. python标准库使用教程_Python标准库概览

    总结 这个部分讲了一些常用的python库的方法.一下子也记不住,不过基本都自己敲了代码试了试. os模块 os模块介绍了一些操作系统级别的方法 os.getcwd():得到当前工作目录 os.chd ...

  7. python re库函数_python re库的正则表达式学习笔记

    1. 安装 默认已经安装好了python环境了 re库是python3的核心库,不需要pip install,直接import就行 2. 最简单的模式 字符本身就是最简单的模式 比如:'A', 'I ...

  8. python itertools模块_Python标准库:itertools模块

    来源:j_hao104 简介 官方描述:Functional tools for creating and using iterators.即用于创建高效迭代器的函数. itertools.chain ...

  9. python计算平均数_Python标准库——数学运算

    平均值 statistics模块实现了很多常用的统计公式,允许使用Python的各种数值类型(int.float.Decimal和Fraction)来完成高效计算. 共支持3种形式的平均值:均值(me ...

最新文章

  1. wxWidgets:wxDialog类用法
  2. java context.write_Channel.write() 和 ChannelHandlerContext.write() 的区别
  3. 2019报告:AI程序员人才需求暴涨35倍!每10个公司就有6个人才缺口
  4. 【1024】我的CSDN博客之路,感谢CSDN,我们一路同行!深度学习系列专栏回顾
  5. 【utorrent】ubuntu 安装utorrent
  6. 路飞学城—Python爬虫实战密训班 第三章
  7. dreamwave php,thinkphp+dreamwaver技巧
  8. Android ButterKnife示例
  9. jdk8下载要先有Oracle账号吗,【转载】linux安装jdk8--附带oracle账号
  10. 技术人生:立志、勤学、改过、责善
  11. Linux 设置交换分区
  12. Atitit 代理CGLIB 动态代理 AspectJ静态代理区别
  13. 带你了解关系网络在反欺诈领域的常见应用
  14. eplan图纸怎么发给别人_如何保护你的EPLAN图纸
  15. ANSYSworkbench中skewness解释
  16. 将win10家庭版、教育版系统激活为win10专业版
  17. 热核特征(heat kernel signature,HKS)简单解释(附可运行代码)
  18. 如何用列表解析式生成 2个小数位 的 python 列表
  19. 电脑连接android手机测试,关于如何将手机画面投屏到PC的测试(Android)
  20. 【论文阅读】自动作文评分系统:一份系统的文献综述

热门文章

  1. Python 代码便利并行,这个操作秀啊!
  2. oracle顺序读发散读,Oracle 拼音排序
  3. 深度学习-Tensorflow2.2-预训练网络{7}-迁移学习基础针对小数据集-19
  4. mysql数据类型默认值_MySQL数据类型 - 数据类型默认值
  5. js 获取日期并格式化
  6. 【转载】SpringBoot系列——Swagger2
  7. Notepad++ 删除空白行的方法(转)
  8. SSIS中循环遍历组件[Foreach Loop Container]
  9. rabbitmq 连接过程详解
  10. PHPCMS修改域名