Python 语言格式字面量(f-string)
示例
在PEP498(Python3.6及更高版本)中引入了字面量格式的字符串,使您可以f在字符串文字的开头添加前缀,以有效地将.format其应用于当前范围内的所有变量。
>>> foo = 'bar' >>> f'Foo is {foo}' 'Foo is bar'
这也适用于更高级的格式字符串,包括对齐方式和点表示法。
>>> f'{foo:^7s}' ' bar '
注意:f“”不表示特定类型,如python2中b“”表示字节,u“”表示unicode。立即应用格式化,从而产生正常的stirng。
格式字符串也可以嵌套:
>>> price = 478.23 >>> f"{f'${price:0.2f}':*>20s}" '*************$478.23'
f字符串中的表达式按从左到右的顺序求值。仅当表达式具有副作用时才可以检测到:
>>> 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]