如何在 Python 2.7 中以字符串格式包含 %?
How to include % in string formats in Python 2.7?
我正在尝试使用字符串格式在字符串中附加 %
。
我正在尝试获得以下输出:
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
如何在我的格式化字符串中包含 %
?
要将百分比 %
包含到将用于 printf 样式字符串格式的字符串中,只需通过包含双百分比 %%
[=15= 来转义 %
]
a = []
b = {'by_name': "FTa0213"}
a.append(" name like %%%s' " % b['by_name'])
print "a :", a
(Docs)
您可以将百分号加倍来转义它。
a = []
b = {'by_name': "FTa0213"}
a.append(" name like '%%%s' " % b['by_name'])
print "a :", a
输出
a : [" name like '%FTa0213' "]
不过,我觉得用format
的方法更清楚:
a = [ ]
b = {'by_name': "FTa0213"}
a.append(" name like '%{by_name}' ".format(**b))
print "a :", a
在您的第一次尝试中,您使用“%”的方式是错误的;下面的代码可以用于您的第一次尝试。
a.append( "name like %%%s" % b['by_name'])
由于“%”在python字符串中比较特殊,所以需要在真正的“%”前加一个“%”进行转义。
在你的第二次尝试中,你的打印没有任何错误,你在你的 a.append
行中忘记了一个 ")"
。 ;-)
只需将 % 放在那里,无需设置变量
a = [ ]
b = {'by_name':"FTa0213"}
a.append(" name like '%{}' ".format(b['by_name']))
print "a :",a
输出是
a : [" name like '%FTa0213' "]
我正在尝试使用字符串格式在字符串中附加 %
。
我正在尝试获得以下输出:
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
如何在我的格式化字符串中包含 %
?
要将百分比 %
包含到将用于 printf 样式字符串格式的字符串中,只需通过包含双百分比 %%
[=15= 来转义 %
]
a = []
b = {'by_name': "FTa0213"}
a.append(" name like %%%s' " % b['by_name'])
print "a :", a
(Docs)
您可以将百分号加倍来转义它。
a = []
b = {'by_name': "FTa0213"}
a.append(" name like '%%%s' " % b['by_name'])
print "a :", a
输出
a : [" name like '%FTa0213' "]
不过,我觉得用format
的方法更清楚:
a = [ ]
b = {'by_name': "FTa0213"}
a.append(" name like '%{by_name}' ".format(**b))
print "a :", a
在您的第一次尝试中,您使用“%”的方式是错误的;下面的代码可以用于您的第一次尝试。
a.append( "name like %%%s" % b['by_name'])
由于“%”在python字符串中比较特殊,所以需要在真正的“%”前加一个“%”进行转义。
在你的第二次尝试中,你的打印没有任何错误,你在你的 a.append
行中忘记了一个 ")"
。 ;-)
只需将 % 放在那里,无需设置变量
a = [ ]
b = {'by_name':"FTa0213"}
a.append(" name like '%{}' ".format(b['by_name']))
print "a :",a
输出是
a : [" name like '%FTa0213' "]