f-string 是 python3.8 推出的一种格式化字符串的表达式,返回值类型始终为一个字符串。
在f-string 之前可以使用以下形式来格式化:
's = %s' % hello
"s = {}".format(hello)
f-string 的一些用法如下:
>>> a = 'hello'
>>> b = 12.23456
>>> f'{a}'
'hello'
>>> F'{a}' # f支持大写和小写混用
'hello'
>>> f'{a=}' # 直接以a=的形式打印值
"a='hello'"
>>> f'{a:10}' # 宽度为10,默认左对齐
'hello '
>>> f'{a:^10}' # 宽度为10居中对齐
' hello '
>>> f'{a:>10}' # 宽度为10,右对齐
' hello'
>>> f'{a:<10}' # 宽度为10,左对齐
'hello '
>>> f'{a:_<10}' # 宽度为10,右对齐,剩余用_占位
'hello_____'
>
>>> f'{b:.4}' # 整体保留4位
'12.23'
>>> f'{b:.4f}' # 小数点后保留4位
'12.2346'
>>> c = 1
>>> f'{c:0>10}' # 宽度为10,前面用0填充
'0000000001'
>>> f'{c:0<10}' # 宽度为10,后面用0填充
'1000000000'
>>> f'{c:.3%}' # 转为百分数,保留3位小数
'100.000%'
>>> d = 100000 # 把100000转为千分位分隔符显示
>>> f'{d:,}'
'100,000'
>>>
>>> e = 20
>>> f'{e:#0x}' # 转为16进制,并且前缀加上0x,宽度为0
'0x14'
>>> f'{e:0x}' # 转为16进制,不加前缀
'14'
>>> f'{e:#10b}' # 转为二进制,并且前缀加上0x,宽度为10
' 0b10100'
>>> f'{e:0o}' # 转为8进制,宽度为0
'24'
>>> i = 0b10100
>>> f'{i:d}' # 二进制转为10进制,宽度为0
'20'
>>> a = 'hello'
>>>
>>> f'{a!r}' # 同repr(a)
"'hello'"
>>> f'{a!a}' # 同ascll(a)
"'hello'"
>>>
>>> f'{a!s}' # 同str(a)
'hello'