格式文字(f-string)

PEP 498 (Python3.6 及更高版本) 中引入了文字格式字串,允許你將 f 新增到字串文字的開頭,以便有效地將 .format 應用於當前範圍內的所有變數。

>>> foo = 'bar'
>>> f'Foo is {foo}'
'Foo is bar'

這也適用於更高階的格式字串,包括對齊和點表示法。

>>> f'{foo:^7s}'
'  bar  '

注意: f''並不表示 bytesb''或 python2 中 unicodeu''等特定型別。立即施加成形,導致正常的攪拌。

格式字串也可以巢狀

>>> 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]