文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中有哪些文本常量与字符串模板string库

2023-06-15 01:27

关注

本篇文章给大家分享的是有关Python中有哪些文本常量与字符串模板string库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、前言

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

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

二、首字母大写

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

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

import strings = "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)

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

Python中有哪些文本常量与字符串模板string库

三、字符串模板

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

import stringvalues = {    "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()进行字符串替换。

Python中有哪些文本常量与字符串模板string库

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

import stringvalues = {    "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))

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

Python中有哪些文本常量与字符串模板string库

四、高级模板

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

import stringclass 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名字规则,这里用正则表达式规定,比如是"字符串_数字"。运行之后,效果如下:

Python中有哪些文本常量与字符串模板string库

五、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"))#关键字匹配,按关键字填充

运行之后,效果如下:

Python中有哪些文本常量与字符串模板string库

六、进阶用法

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))

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

Python中有哪些文本常量与字符串模板string库

七、高阶用法

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也是数值,不过特别大时转换为幂科学计数

运行之后,效果如下:

Python中有哪些文本常量与字符串模板string库

Python的优点有哪些

1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、Python功能强大,拥有的模块众多,基本能够实现所有的常见功能。

以上就是Python中有哪些文本常量与字符串模板string库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯