有问题的代码:
a = 'test'
# 1)
print(f'{a}') # test
# 2)
print(f'{ {a} }') # {'test'}
# 3)
print(f'{{ {a} }}') # {test}
我的问题是,为什么案例二会打印这些引号?
我没有在文档中明确找到任何内容。我发现的最接近的细节是在此功能的PEP中:
(F 字符串的语法)
f ' <text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ... '
然后使用格式协议格式化表达式,使用格式说明符作为参数。生成 f 字符串的值时使用结果值。
我想 的值a
是用一些格式化程序格式化的,因为数据类型是字符串,所以用引号括起来。然后将该结果返回到周围的 F 字符串格式化实例。
这个假设正确吗?还有其他地方可以更清楚地记录这一点吗?