这是Python3.6版本开始引入的一种字符串格式化的语法,称为f-string。它允许在字符串中使用花括号{}来引用Python中的变量或表达式,并将它们的值插入到字符串中。这种语法简单易懂,使得字符串格式化变得更加简洁和高效。
f-string以f或F开头,后面跟着一个带有花括号的表达式,花括号中可以放置要引用的变量或表达式。例如:
name = "Tom"
age = 18
print(f"My name is {name}, and I am {age} years old.")
输出结果就是:
My name is Tom, and I am 18 years old.
使用f-string使代码更加简洁易读,而且在字符串中引用变量时也更加方便。此外,f-string还支持各种格式化选项,如显示精度、填充字符、对齐等等,更加灵活。
以下是Python中可用的格式化选项及其含义:
常用选项:
{}:占位符,表示可替换的变量或表达式。
{<index>}:格式化参数的位置索引,用于指定占位符替换的变量或表达式的顺序。<index>是用于指定参数顺序的数字,从0开始。例如,{0}表示第一个变量或表达式。
{<key>}:指定关键字参数的占位符名称。<key>是关键字参数的名称,例如,{name}表示关键字参数name的值。
对齐方式和填充符号:
<:使用左对齐。
>:使用右对齐。
^:使用居中对齐。
=:对于数字类型,将填充符号放在符号和数字之间以对齐,如+000023。
+:在数字前面添加符号(正/负)。
-:忽略正数的正号。
0:用0填充数字字段,例如01、002。
::指定格式化选项的起始符号。
数字和字符串格式化:
b:使用二进制整数。
c:将整数转换为ASCII字符。
d:使用十进制整数。
e:使用科学计数法表示浮点数,如1.23e+02。
E:同样使用科学计数法表示浮点数,但使用大写形式。
f:使用定点小数格式(默认为6个小数位),例如1.234567。
F:同样使用定点小数格式,但对于特殊情况,例如 NaN 和 Infinity 将使用大写字符。
g:根据值的大小自动选择使用e或者f格式。
G:同样根据值的大小自动选择使用E或者F格式。
n:同样使用定点小数格式,但是包含用逗号分隔的数字。
o:使用八进制整数。
s:使用字符串表示(默认格式)。
x:使用小写十六进制整数(0 - 9 和 a - f)。
X:同样使用十六进制整数,但使用大写字母表示(0 - 9 和 A - F)。
%:将数值转换为百分比形式。
{:<width>}:指定字符串字段的最小宽度,<width>是字段的宽度,可以是一个数字或另一个占位符,如{:<10},表示左对齐并将字段填充到10个字符长度。
{:<width>.<precision>}:指定字符串字段的最小宽度和小数的精度。<width>表示字段长度,<precision>表示小数位数,例如{:.2f}表示将浮点数舍入到小数点后两位。
{0:<10.2f}:数字格式化,数字在占位符中的位置索引为0,指定最小字段长度为10,小数点后保留2位。
日期和时间格式化:
%a:星期几的简写形式,如Mon。
%A:星期几的全写形式,如Monday。
%b:月份的简写形式,如Jan。
%B:月份的全写形式,如January。
%c:当前日期和时间,如Wed Jan 10 15:24:51 2018。
%d:日期中的日,如31。
%H:24小时制的小时,如17。
%I:12小时制的小时,如05。
%j:一年中的第几天,如365。
%m:月份(以数字表示),如12。
%M:分钟数,如59。
%p:上午或下午的标记符,如下午。
%S:秒数,如03。
%U:一年中的第几周(以周日为一周开始),如52。
%w:一周中的第几天,如6。
%W:一年中的第几周(以周一为一周开始),如52。
%x:当日日期,如12/31/17。
%X:当前时间,如22:45:10。
%y:年份的后两位数字,如17。
%Y:完整的年份,如2018。
%Z:时区的缩写名,如EST、MDT。
%f:按一定位数显示微秒,如2019-03-01 14:45:32.422201。
%z:与UTC相差的小时和分,如+0530。
以上是常用的格式化选项,Python还提供了更多的格式化选项和变化,具体可参考Python官方文档。
以下是Python官方文档中有关格式化字符串的部分链接:
https://docs.python.org/3/library/string.html#format-string-syntax
此文档中详细描述了格式化字符串语法及其格式控制选项,同时也提供了示例和解释。