总结Python中的字符串格式化

简介: 正式的Python专栏第22篇,同学站住,别错过这个从0开始的文章!

前篇分析了字符串的简单使用,这篇我们看看字符串的格式化


什么是字符串格式化,为什么需要这样做?

我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此!

想必主播通过某种方式把输出转换为读者想看的内容。


是不是大概懂了什么是格式化和格式化的必要性了!


仅仅类比,我们程序的格式化,并没有那么过份!1输出还是1,只是人类更好读懂了。


而不像网络主播那样稍微格式化(工程挺大)从1变成了0。


毕竟程序不能欺骗开发者。


必要性:输出为更好的格式化,方便开发者和用户读懂输出。


程序中都有哪些格式化?

网上说有三种,四种,未来还可能会增加其他库。


学委开发过多种语言,大概总结如下两个大类:


字符串占位符替换

字符串关键字替换

下面看看代码


占位符格式化

第一种%占位符格式化

python中我们最常见的是’%‘ 这类占位符号


str = "hello"
"this is a string: %s" % str 
"this is a string: %s, %s" % (str, str) 

上面我们观察一下,可以发现输出中‘%s’被替换为了’hello’;

另一个是多个‘%s’的替换是用一个元组,按照对应下标来替换。

格式化基本上都可以使用’%s’来完成。

好,懂了这个,我们继续看看下面的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format.py
# @Project : hello
import sys
first = "持续学习"
second = "持续开发"
slogan = first + second
print(slogan)
banner = "*" * 16
print(banner)
slice = slogan[2:4]
print(slice)
print(""""学习" in slogan : %s""" % ("学习" in slogan))
print(""""不学习" not in slogan : %s""" % ("不学习" not in slogan))
print(r"""打印\n换行被当做普通字符输出了!""")
# 以上我们都可以看到%,很多次代码都有说到这个,但是并没有过多解释
print("%s" % slogan)  # 最常用了%s 格式化字符串
# print("%c"%'ccc')#TypeError: %c requires int or char
print("%c" % 'c')  # %c 通常用来强制检测待输出的字符串必须长度为1
print("%c" % '雷')  # %c 通常用来强制检测待输出的字符串必须长度为1
number = 102.40101
print("%%i 符号整数 %i" % number)
print("%%i 符号整数:%i" % -number)
print("%%d 符号整数 %d" % number)
print("%%d 符号整数 %d" % -number)
print("%%u 无符号整数:%u" % number)
print("%%u 无符号整数:%u" % -number)
#print("八进制 %o" % number)
print("%%o 八进制 %o" % 102)
print("%%x16进制 %x" % 102)
#print("16进制 %X" % 102)
print("%%e 自然常数 e进制: %e" % number)
#print("%E" % number)
print("%%f 浮点数 %f" % number)
print("%%g 灵活的有效显示:%g" % number) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#print("%G" % number)
print("%%g 灵活的有效显示:%g" % (number*10001)) #保证显示6微有效数字的前提下,灵活的选择小数方式,或者科学计数法
#下面两种写法需要注意执行顺序
#print("%g" % number*10001) #注意这种写法
#print("%g" % number**10) #注意这种写法

读者可以直接复制运行代码,学委补充了运行效果图:

image.png

这里比较特殊的是‘%u’无符号整型的展示,正负数并无区别。


那是肯定的,无符号整型跟有符号整型是表示数的两种手段。

但是无符号的比有符号多了一个位来放数字,所以范围更大。


上面这段题外话,小白稍微看看或者跳过。我们继续看看其他格式化方式。


第二种占位符格式化

跟上面稍微区别就是我们会看到一下明显的下标。


{0}, {1}, … {n}


想要留几个替换位,就放几个{}括起来,但要求必须给到n个参数,更多信息参考https://docs.python.org/3/library/string.html


这个非常简单直接,我们看看代码:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format1.py
# @Project : hello
import sys
slogan = "持续学习持续开发"
author = "雷学委"
text = "{0}, {1}".format(slogan, author)
print("text= %s" % text)

关键字格式化

非常好理解就是类似{}一对大括弧中间为待替换的内容。

这个非常简单直接,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : string_format2.py
# @Project : hello
import sys
slogan = "持续学习持续开发"
author = "雷学委"
text = f"{slogan} , {author}"
print("text= %s" % text)

运行效果如下:

image.png

从这里看,关键字格式化比较友好!


Next

Python生态中肯定有很多格式化的库,不一一涉及了。


读者可以参照这两种思想定制开发自己的替换格式化方案发布为库,这里学委要推荐一下这篇开发python库的文章:


保姆级教程带你开发优质的Python库之下篇【种子项目】


下一篇会介绍一写字符串操作其他函数。


目录
相关文章
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
663 100
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
753 99
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
653 92
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
498 4
|
数据采集 存储 数据库
Python字符串全解析:从基础操作到高级技巧
Python字符串处理详解,涵盖基础操作、格式化、编码、正则表达式及性能优化等内容,结合实际案例帮助开发者系统掌握字符串核心技能,提升文本处理与编程效率。
968 0

推荐镜像

更多