Python中str.format()双大括号未替换内容的原因咨询
问题解释:Python字符串格式化中转义大括号的作用
在Python的字符串格式化规则里,双大括号{{和}}是用来表示单个普通大括号{和}的转义写法,它们不会被当作格式化占位符处理。
你的代码分析
- 定义的字符串
str3 = "{{0}}",经过转义后,实际存储的内容是"{0}"——这里的{0}只是普通文本,不再是能被format()方法识别的占位符。 - 所以调用
str3.format("Don't print")时,因为字符串里没有可替换的占位符,format()方法不会做任何替换操作,直接输出转义后的普通文本{0}。
正确写法
如果想得到你预期的"Don't print"结果,需要修改字符串定义:
# 不带引号的结果 str3 = "{0}" print(str3.format("Don't print")) # 输出: Don't print # 带引号的结果 str3 = "\"{0}\"" print(str3.format("Don't print")) # 输出: "Don't print"
内容的提问来源于stack exchange,提问作者Madeline Williams
相关产品推荐
相关产品推荐

