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