当前位置: 首页 > 图灵资讯 > 行业资讯> Python格式化字符串(格式化输出)

Python格式化字符串(格式化输出)

发布时间:2025-10-28 16:14:07

Python提供“%”格式化输出各种类型的数据,如以下代码:

price=108
print("thebook'spriceis%s"%price)

在上述程序中 print 函数包括以下三个部分,第一部分是格式化字符串(相当于字符串模板),格式化字符串包含“%”s“占位符,它将被第三部分的变量或表达值所取代;第二部分固定使用“%”作为分隔符。

格式化字符串中的“%”s被称为转换说明符(Conversion Specifier),它的功能相当于一个占位符,它将被后面的变量或表达值所取代。“%s指定使用变量或值 str() 函数转换为字符串。

如果格式化字符串包含多个“%”s“占位符,第三部分也应相应地提供多个变量,并使用圆括号来包括这些变量。例如,以下代码:

user="Charli"
age=8
#格式化字符串有两个占位符,第三部分提供两个变量
print("%sisa%syearsoldboy"%(user,age))

只能在格式化字符串中使用“%”吗?s还有其他转换说明符吗?如果只有“%”s”这种形式,Python 格式化功能也太单一了。

实际上, Python 提供以下转换说明:

转换说明符说明%d,%I转换为带符号的十进制形式的整数%o转换为带符号的八进制形式的整数%x,%X转换为具有符号的16进制形式的整数%e转换为科学计数法所表示的浮点数(e 小写)%E转化为科学计数法表示的浮点数(E 大写)%f,%F转化为十进制浮点数%g智能选择 %f 或 %e 格式%G智能选择使用 %F 或 %E 格式%c格式化字符 ASCII 码%r使用 repr() 将变量或表达式转换为字符串%s使用 str() 将变量或表达式转换为字符串

在使用上述转换说明符时,可以指定转换后的最小宽度,如以下代码:

num=-28
print("numis:%6i"%num)
print("numis:%6d"%num)
print("numis:%6o"%num)
print("numis:%6x"%num)
print("numis:%6X"%num)
print("numis:%6s"%num)

运行上述代码时,可以看到以下输出结果:

numis:-28
numis:-28
numis:-34
numis:-1c
numis:-1C
numis:-28

从上述输出结果可以看出,此时指定字符串的最小宽度为 6.因此,当程序转换值时,总宽度为 6.程序自动在数值前添加三个空间。

默认情况下,转换后的字符串总是右对齐,不够宽的时候左补充空间。Python 也允许在最小宽度之前添加一个标志来改变这种行为,Python 支持以下标志:

-:指定左对齐。

+:表示值总是带有符号(正数带“+”,负数带“-”)。

0:这意味着不补充空间,而是补充空间 0。

例如下面的代码

num2=30
#最小宽度为0,左补0
print("num2is:%06d"%num2)
#最小宽度为6,左边补0,总带符号
print("num2is:%+06d"%num2)
#最小宽度为6,右对齐
print("num2is:%-6d"%num2)

运行上述代码时,可以看到以下输出结果:

num2is:000030
num2is:+00030
num2is:30

转换浮点数,Python 还允许指定小数点后的数字位数:如果转换为字符串,Python 转换后允许指定字符串的字符数。该标志称为精度值,放置在最小宽度后,在中间使用点 () 分开。例如,以下代码:

my_value=3.001415926535
#最小宽度为8,小数点后保留3位
print("my_valueis:%8.3f"%my_value)
#最小宽度为8,小数点后保留3位,左侧补0
print("my_valueis:%08.3f"%my_value)
#最小宽度为8,小数点后保留3位,左侧补0,始终带符号
print("my_valueis:%+08.3f"%my_value)
the_name="Charlie"
#只保留三个字符
print("thenameis:%.3s"%the_name)#输出Cha
#只保留两个字符,最小宽度10
print("thenameis:%10.2s"%the_name)

运行上述代码时,可以看到以下输出结果:

my_valueis:3.001
my_valueis:0003.001
my_valueis:+003.001
thenameis:Cha
thenameis:Ch

相关文章

Python格式化字符串(格式化输出)

Python格式化字符串(格式化输出)

2025-10-28
Python数值类型(整形、浮点型和复数)及其用法

Python数值类型(整形、浮点型和复数)及其用法

2025-10-28
Windows安装Python详解

Windows安装Python详解

2025-10-28
Python三目运算符(三元运算符)用法详解

Python三目运算符(三元运算符)用法详解

2025-10-28
Python去除字符串中空格(删除指定字符)的3种方法

Python去除字符串中空格(删除指定字符)的3种方法

2025-10-28
Python算术运算符及用法详解

Python算术运算符及用法详解

2025-10-28