如标题中所述,为什么这个方法不起作用:
print "Hello, my name is %s, I am %d\% confused!" % ("steve", 100)
我知道解决方案是用来%%
表示raw %
,但是为什么\%
在使用插值运算符时不起作用?我认为这不是一些随机的设计决定,并且\
当使用插值运算符时,当然仍然会逃脱,如下所示:
print "Hello, my name is %s\n, I am %d%% confused!" % ("steve", 100)
印刷:
您好,我叫史蒂夫,
我100%困惑!
这不是一个“随机”的设计决定。\n
是标准的C转义序列; 该%
字符串格式是没有的。使用%
而不是\
逃脱%
加强了这种区别。
此外,Python的%
字符串格式(在Python 3.1中已弃用)基于C的sprintf
,这是%%
打印文字的语法的%
起源。请注意,这不是转义序列。第%
一个在这里不能逃脱第二个!与所有其他转换规范一样,第一个%
引入了转换说明符,第二个引入了转换说明%
符。
有关更多信息,请参见您的友善邻居man sprintf
页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句