我正在尝试使用字符串格式将%
附加到字符串中。
我想获得以下输出:
a : [" name like '%FTa0213' "]
尝试1:
a = [ ]
b = {'by_name':"FTa0213"}
a.append(" name like "%" %s' " %b['by_name'])
print "a :",a
错误:
a.append(" name like "%" %s' " %b['by_name'])
TypeError: not all arguments converted during string formatting
尝试2:
a = [ ]
b = {'by_name':"FTa0213"}
c = "%"
a.append(" name like '{0}{1}' ".format(c,b['by_name'])
print "a :",a
错误:
print "a :",a
^
SyntaxError: invalid syntax
如何在格式化的字符串中加入%
?
答案 0 :(得分:10)
要将一个百分比%
包含在将用于printf样式字符串格式的字符串中,只需通过包含双倍%
%%
a = []
b = {'by_name': "FTa0213"}
a.append(" name like %%%s' " % b['by_name'])
print "a :", a
(Docs)
答案 1 :(得分:6)
在您第一次尝试时,您使用“%”的方式是错误的;下面的代码可以在您第一次尝试时使用。
a.append( "name like %%%s" % b['by_name'])
由于“%”在python字符串中是特殊的,所以你需要在真正的“%”之前添加一个“%”来逃避。
在您的第二次尝试中,您的打印件没有任何问题,您忘记了")"
行中的a.append
。 ; - )
答案 2 :(得分:5)
只需将%放在那里,无需设置变量
a = [ ]
b = {'by_name':"FTa0213"}
a.append(" name like '%{}' ".format(b['by_name']))
print "a :",a
输出
a:["名称如'%FTa0213' "]
答案 3 :(得分:3)
你可以通过加倍来逃避百分号。
let info = Reflect.get(ITest, 'foo');
if (info.isReadOnly()) { ... }
<强>输出强>
a = []
b = {'by_name': "FTa0213"}
a.append(" name like '%%%s' " % b['by_name'])
print "a :", a
但是,我认为使用a : [" name like '%FTa0213' "]
方法更清楚:
format