格式文字(f-string)
在 PEP 498 (Python3.6 及更高版本) 中引入了文字格式字符串,允许你将 f
添加到字符串文字的开头,以便有效地将 .format
应用于当前范围内的所有变量。
>>> foo = 'bar'
>>> f'Foo is {foo}'
'Foo is bar'
这也适用于更高级的格式字符串,包括对齐和点表示法。
>>> f'{foo:^7s}'
' bar '
注意: f''
并不表示 bytes
的 b''
或 python2 中 unicode
的 u''
等特定类型。立即施加成形,导致正常的搅拌。
格式字符串也可以嵌套 :
>>> price = 478.23
>>> f"{f'${price:0.2f}':*>20s}"
'*************$478.23'
f-string 中的表达式按从左到右的顺序进行计算。只有表达式有副作用时才能检测到:
>>> def fn(l, incr):
... result = l[0]
... l[0] += incr
... return result
...
>>> lst = [0]
>>> f'{fn(lst,2)} {fn(lst,3)}'
'0 2'
>>> f'{fn(lst,2)} {fn(lst,3)}'
'5 7'
>>> lst
[10]