Python3之字符串格式化浅谈

本文深入讲解了Python中字符串格式化的两种主要方法:使用格式化操作符%和str.format()函数。通过实例演示了如何替换字符串中的占位符,包括字符串、整数、浮点数的格式化,并展示了str.format()的高级用法。

日期:2019年11月11日
作者:Commas
注释:学习就是为了忘记,那就总结一下字符串格式化吧…

如果您想了解更多有关Python的知识,那么请点【我】
《我的Python浅谈系列目录》



一、字符串格式化

定义:将字符串特定的地方,替换自己想要的字符串;
例如:将字符串“我爱?”中的“?”替换成“CSDN”,即得到新字符串“我爱CSDN”,这个过程就是字符串格式化。

序号“方法”代表备注
1格式化操作符%
2格式化函数str.format()推荐使用

二、格式化操作符%

序号格式化字符串全称含义
1%sstring字符串
2%ddecimal十进位的整数
3%ffloat浮点数
4%%%输出%

1、%s的示例

#(1)一个格式化字符串
str_ini = "%s,I'm Commas"
str_formart = str_ini % ("Hello",)
# str_formart = str_ini % "Hello"
print(str_formart)
#控制台输出:Hello,I'm Commas
#-----------------------------------------------
#(2)两个或两个以上格式化字符串
str_ini = "SELECT * FROM %s WHERE name = %s"
str_formart = str_ini % ("Student", "Commas")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

2、%d的示例

#(1)%d:表示一个十进制的整数
str_ini = "你%d块都不给我!"
str_formart = str_ini % (100.01,)
print(str_formart)
#控制台输出:你100块都不给我!
#-----------------------------------------------
#(2)%06d:表示一个“6位数字”,不足的地方用0补齐
str_ini = "我的学号是%06d"
str_formart = str_ini % (1,)
print(str_formart)
#控制台输出:我的学号是000001

3、%f的示例

#(1)%f:显示完整的浮点数
str_ini = "PI的值是约等于%f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制台输出:PI的值是约等于3.141596
#-----------------------------------------------
#(2)%.2f:显示小数位数为2的浮点数
str_ini = "PI的值是约等于%.2f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制台输出:PI的值是约等于3.14

4、%%的示例

str_ini = "BUG的发生率竟然是 %.2f %%,一个BUG改一天"
str_formart = str_ini % (100,)
print(str_formart)
#控制台输出:BUG的发生率竟然是 100.00 %,一个BUG改一天

三、格式化函数str.format()

1、按默认顺序格式化

# (1){}表示数据不做任何处理
str_ini = "SELECT * FROM {} WHERE name = {}"
str_formart = str_ini.format("Student", "Commas")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas
#-------------------------------------------
# (2){:.2f}表示保留两位小数
str_ini = "PI的值是约等于{:.2f}"
str_formart = str_ini.format(3.1415926)
print(str_formart)
#控制台输出:PI的值是约等于3.14

2、按指定位置格式化

str_ini = "SELECT * FROM {1} WHERE name = {0}"
str_formart = str_ini.format("Commas", "Student")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

3、使用字典(Dictionary)格式化

dic_info = {"table": "Student", "name": "Commas"}
str_ini = "SELECT * FROM {table} WHERE name = {name}"
str_formart = str_ini.format(**dic_info)
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

4、使用列表(List)格式化

list_info = [99.99, 2]
str_ini = "白菜特价:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(list_info)
print(str_formart)
#控制台输出:白菜特价:99.99元2斤

5、使用元组(Tuple)格式化

Tuple_info = (99.99, 2)
str_ini = "白菜特价:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(Tuple_info)
print(str_formart)
#控制台输出:白菜特价:99.99元2斤

格式化函数str.format()中的格式速查表:

格式输入输出描述
{:.2f}3.14153.14保留两位小数
{:+.2f}+3.1415+3.14带符号保留两位小数
{:+.2f}-3.1415-3.14带符号保留两位小数
{:.0f}3.14153不带小数
{:0>3d}1XX1宽度为3,不足从左边开始填充X,其中X表示0~9任意数
{:0<4d}1010XX宽度为4,不足从右边开始填充X,其中X表示0~9任意数
{:>10d}1313右对齐(宽度为10,不足从左边开始填充空格)
{:<10d}1313左对齐(宽度为10,不足从右边边开始填充空格)
{:^10d}1313中间对齐(宽度为10,不足从左右两边填充空格)
{:,}10001,000以逗号分隔的数字格式
{:.2%}0.9999%百分比格式,保留2位小数
{:.2e}10001.00e+03指数记法,保留2位小数
{:.1e}0.0121.2e-02指数记法,保留1位小数
{:b}111011二进制:binary
{:d}1111十进制:decimal
{:o}1113八进制:octonary
{:x}11b十六进制:hexadecimal(sexadecimal)
{:#x}110xb十六进制:hexadecimal(sexadecimal)
{:#X}110XB十六进制:hexadecimal(sexadecimal)

本文参考:
1、https://www.runoob.com/python/att-string-format.html


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/103008000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值