Python格式化字符串中能否保留单个不匹配的大括号?
Python格式化字符串中如何输出单个不匹配的大括号?
当然可以实现!不过str.format()本身对大括号的格式有要求——要么是成对的转义符({{/}}),要么是成对的占位符({}),直接写单个{或}肯定会报错。不过有几个简单的技巧能满足你的需求:
方法1:字符串拼接(最直观)
把单个大括号当成普通字符串,和格式化后的部分直接拼接,完全不会有语法问题:
'{' + ' {}'.format(42) # 输出结果: '{ 42'
方法2:在format字符串里正确转义+占位符
你之前的错误写法是因为大括号结构不匹配,只要调整成转义符加合法的占位符就行。比如要输出{ 42,可以这么写:
'{{ {}'.format(42) # 输出结果: '{ 42'
这里的{{会被转义成单个{,后面的{}是正常的占位符,替换成42,整个字符串的大括号都是成对的({{是一对转义符,{}是一对占位符),所以完全合法。
方法3:用f-string(Python 3.6+适用)
如果你的Python版本支持f-string,写法会更简洁:
f'{{ {42}' # 输出结果: '{ 42'
同样是用{{转义出单个{,后面直接跟上变量即可。
补充一下:如果要输出单个右大括号},同理用}}转义,比如'{} }}'.format(42)会输出42 }。
内容的提问来源于stack exchange,提问作者JimPri
相关产品推荐
相关产品推荐

