Python基础之文本常量与字符串模板

 更新时间:2021年04月26日 09:50:02   作者:李元静  
这篇文章主要介绍了Python基础之文本常量与字符串模板,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下

一、前言

在程序中,有很多高效率的字符串处理方式,如果开发者能够完全掌握这些高效的字符串处理,往往在开发者也能事半功倍。比如针对于字符串的处理,也是自然语言处理的基础知识。

而python3中,处理字符串的库为:string。本篇将详细介绍各种字符串的高效处理方式。

二、首字母大写

对于英文单词组成的字符串来说,很多时候,我们需要对英文的首字母进行大写的变更。如果没有了解其高效率的函数,一般我们都通过循环,判断空格,取空格后一位的字母,判断其在ASCII中的编码后,取其大写替换掉该位置的字符串。

但是,python3中有一个函数可以直接将首字母大写,该函数为capwords()。下面,我们来通过一小段代码实现首字母大写的字符串变更。

import string

s = "When he shewed the riches of his glorious kingdom and the honour of his excellent majesty many days, even an hundred and fourscore days"
print("原始字符串")
print(s)
result = string.capwords(s)
print("首字母大写字符串")
print(result)

运行之后,我们会得到全大写首字母字符串:

首字母大写

三、字符串模板

在string库中,字符串模板函数为string.Template(),它可以用来拼接字符串。示例代码如下:

import string

values = {
    "name": "liyuanjing",
    "age": "13",
}

s = """My name is : $name
    I am $age years old
"""

template_str = string.Template(s)
print(template_str.substitute(values))

这里,我们使用字符串模板string.Template,然后通过函数substitute()进行字符串替换。

字符串模板

不过,这里有可能替换时values字典中没有对应的key怎么办?string库还给我们提供了一个函数safe_substitute()。

import string

values = {
    "name": "liyuanjing",
    "age": "13",
}

s = """My name is : $name
    I am $age years old
    $work
"""

template_str = string.Template(s)
print(template_str.safe_substitute(values))

因为字典没有对应的值进行替换,所以会保留原始的字符串数据。效果如下:

模板2

四、高级模板

上面的模板使用方法是string库默认提供的规则体系。其实,我们还可以自定义模板的使用匹配方法,具体代码如下:

import string

class MyTemplate(string.Template):
    delimiter = '@'
    idpattern = '[a-z]+_[0-9]+'

values = {
    "name_1": "liyuanjing",
    "age_1": "13",
}

s = """My name is : @name_1
    I am @age_1 years old
    @work_1
"""

template_str = MyTemplate(s)
print(template_str.safe_substitute(values))

这里,delimiter代表需要匹配的符号,默认符号"$",博主替换成了‘@'。其次,idpattern是values对应的key名字规则,这里用正则表达式规定,比如是"字符串_数字"。运行之后,效果如下:

高级模板

五、format用法

基本用法

有过其他语言基础的都应该或多或少接触过format字符串替换。这里,我们直接来看看其基本的使用方式:

print("My name is {}".format("liyuanjing"))#大括号匹配,按顺序依次填充
print("My {1} is {0}".format("liyuanjing","name"))#数字匹配,按位置依次填充
print("My {name} is {tom}".format(tom="liyuanjing",name="name"))#关键字匹配,按关键字填充

运行之后,效果如下:

format1

六、进阶用法

format函数不仅可以匹配替换字符串,还可以通过它对其文本,或者取小数某几位等等。下面,我们来看看这些用法如何实现

print('{} and {}'.format('tom', 'Jerry'))
print('{:10s}'.format('*'))  # 默认左对齐
print('{:>10s}'.format('*'))  # 右对齐
print('{:^10s}'.format('*'))  # 中间对齐
print('{:<10s}'.format('*'))  # 左对齐
print('{} is {:.2f}'.format(3.411592653, 3.1415926))#取2位小数
values = {
    "name_1": "liyuanjing",
    "age_1": "13",
}

s = """My name is : {name_1}
    I am {age_1} years old
"""

print(s.format(**values))

注释已经非常详细,这里不在赘述。效果如下:

format2

七、高阶用法

format除了能做上面这些事情之外,还可以转换进制以及ASCII码符号等等。下面,我们来实现这些高阶用法。

print('{:b}'.format(8))#:b转换为二进制
print('{:c}'.format(200))#:c转换Unicode字符串
print('{:d}'.format(111))#:d转换十进制
print('{:o}'.format(8))#:o转换八进制
print('{:x}'.format(32))#:x转换十六进制
print('{:e}'.format(32))#:e转换幂符号
print('{:%}'.format(0.32))#:%转换百分值
print('{:n}'.format(32000000000))#:n就是数值
print('{:g}'.format(32000000000))#:n也是数值,不过特别大时转换为幂科学计数

运行之后,效果如下:

format3

到此这篇关于Python基础之文本常量与字符串模板的文章就介绍到这了,更多相关Python文本常量与字符串模板内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3爬虫关于识别检验滑动验证码的实例

    Python3爬虫关于识别检验滑动验证码的实例

    在本篇内容里小编给大家分享了关于Python3爬虫关于识别检验滑动验证码的实例内容,需要的朋友们可以学习下。
    2020-07-07
  • python3利用Dlib19.7实现人脸68个特征点标定

    python3利用Dlib19.7实现人脸68个特征点标定

    这篇文章主要为大家详细介绍了python3利用Dlib19.7实现人脸68个特征点标定,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • python3音乐播放器简单实现代码

    python3音乐播放器简单实现代码

    这篇文章主要为大家详细介绍了python3音乐播放器简单实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • python字符串格式化方式解析

    python字符串格式化方式解析

    这篇文章主要介绍了python字符串格式化方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Python Web框架Pylons中使用MongoDB的例子

    Python Web框架Pylons中使用MongoDB的例子

    这篇文章主要介绍了Python Web框架Pylons中使用MongoDB 的例子,大家参考使用
    2013-12-12
  • python爬虫抓取时常见的小问题总结

    python爬虫抓取时常见的小问题总结

    这篇文章主要介绍了python爬虫抓取时常见的小问题总结,整理了部分新手在爬虫过程中遇到的问题,希望可以给大家提供一点问题解决的思路和参考,需要的小伙伴可以参考下面文章内容
    2022-05-05
  • Python 自动登录淘宝并保存登录信息的方法

    Python 自动登录淘宝并保存登录信息的方法

    这篇文章主要介绍了Python 自动登录淘宝并保存登录信息的方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 在Flask使用TensorFlow的几个常见错误及解决

    在Flask使用TensorFlow的几个常见错误及解决

    这篇文章主要介绍了在Flask使用TensorFlow的几个常见错误及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Python中pymysql 模块的使用详解

    Python中pymysql 模块的使用详解

    pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。
    2019-08-08
  • PyQt5+QtChart实现绘制曲线图

    PyQt5+QtChart实现绘制曲线图

    QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现曲线图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12

最新评论