Python f-string

1. 定义

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串。

2. 旧版格式化字符串方式

name = 'Runoob'
print('Hello %s' % name)
# output
# 'Hello Runoob'

3. f-string格式化字符串

f-string 格式话字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

name = 'Runoob'
print(f'Hello {name}' ) # 替换变量
# output
# 'Hello Runoob'

print(f'{1+2}' )        # 使用表达式
# output
# '3'

w = {'name': 'Runoob', 'url': 'www.runoob.com'}
print(f'{w["name"]}: {w["url"]}')
# output
# 'Runoob: www.runoob.com'

4. 使用 = 符号拼接运算表达式与结果(Python 3.8版本)

x = 1
print(f'{x+1}')   # Python 3.6
# output
# 2

x = 1
print(f'{x+1=}')   # Python 3.8
# output
# 'x+1=2'

5. 格式化字符串举例

"First, thou shalt count to {0}"  # References first positional argument
"Bring me a {}"                   # Implicitly references the first positional argument
"From {} to {}"                   # Same as "From {0} to {1}"
"My quest is {name}"              # References keyword argument 'name'
"Weight in tons {0.weight}"       # 'weight' attribute of first positional arg
"Units destroyed: {players[0]}"   # First element of keyword argument 'players'.

6. 字符串格式化转换标识

目前支持的转换标识:

  • '!s' 会对值调用 str()
  • '!r' 调用 repr()
  • '!a' 则调用 ascii()
"Harold's a clever {0!s}"        # Calls str() on the argument first
"Bring out the holy {name!r}"    # Calls repr() on the argument first
"More {!a}"                      # Calls ascii() on the argument first
posted @ 2019-12-10 11:18  zkeeper  阅读(2720)  评论(0编辑  收藏  举报