print('{0},{{0}},{{{0}}},{{{{0}}}}'.format('不打印','打印'))
就是
print('{0},{{0}},{{{0}}},{{{{0}}}}'.format('不打印'))
输出'打印'是不可能的
为了便于理解我们把上面的字符串输出改成这样的:
1、print('{0}'.format('不打印'))
2、print('{{0}}'.format('不打印'))
3、print('{{{0}}}'.format('不打印'))
4、print('{{{{0}}}}'.format('不打印'))
通过格式字符串语法,我们知道:格式字符串包含有以花括号 {} 括起来的“替换字段”。不在花括号之内的内容被视为字面文本,会不加修改地复制到输出中。 如果你需要在字面文本中包含花括号字符,可以通过重复来转义: {{ and }}。
第1种,打印结果是:不打印,这个不解释了,比较好理解;
第2种,打印结果是:{0},解释器以为我们要保留花括号;
第3种,打印结果是:{不打印},转义一次花括号后,剩下部分进行了替换;
第4种,打印结果是:{{0}},转义了两次花括号。
建议:
如果在字符串使用format进行替换的时候,不要搞成这种很多花括号的形式,害了别人累死自己,简单清爽最重要!
就是
print('{0},{{0}},{{{0}}},{{{{0}}}}'.format('不打印'))
输出'打印'是不可能的
为了便于理解我们把上面的字符串输出改成这样的:
1、print('{0}'.format('不打印'))
2、print('{{0}}'.format('不打印'))
3、print('{{{0}}}'.format('不打印'))
4、print('{{{{0}}}}'.format('不打印'))
通过格式字符串语法,我们知道:格式字符串包含有以花括号 {} 括起来的“替换字段”。不在花括号之内的内容被视为字面文本,会不加修改地复制到输出中。 如果你需要在字面文本中包含花括号字符,可以通过重复来转义: {{ and }}。
第1种,打印结果是:不打印,这个不解释了,比较好理解;
第2种,打印结果是:{0},解释器以为我们要保留花括号;
第3种,打印结果是:{不打印},转义一次花括号后,剩下部分进行了替换;
第4种,打印结果是:{{0}},转义了两次花括号。
建议:
如果在字符串使用format进行替换的时候,不要搞成这种很多花括号的形式,害了别人累死自己,简单清爽最重要!