百分比符号不起作用

时间:2012-01-23 18:16:55

标签: python html

我正在使用Python的HTML应用程序。我通常使用%符号表示我正在使用Python元素,之前从未遇到过问题。

现在,我正在使用一些表格,我试图用%符号控制它们的大小。所以现在Python没有显示Python元素。

以下是一些解释自己的代码:

<table width="90%">
<tr>
<td width="60%">HELLO</td>
<td width="40%">GOOD BYE</td>
</tr>
</table>

<input type="button" value="BUTTON" onclick="function(%s)" /> ''' % variable

我所说的错误

  

不支持的格式字符'“'(0x22)在索引19”

引用%s

中的onclick=function(%s)字符串

有人知道表中的%符号是否会影响Python或类似的东西吗?

2 个答案:

答案 0 :(得分:8)

你需要在python字符串中将'%'转义为'%%'。您获得的错误消息可能与其他百分号有关。如果你只在字符串中放入单个百分号,那么python认为它后面会跟一个格式字符,并会尝试在那里进行变量替换。

在你的情况下你应该:

'''

....
<table width="90%%">
<tr>
<td width="60%%">HELLO</td>
<td width="40%%">GOOD BYE</td>
</tr>
</table>

<input type="button" value="BUTTON" onclick="function(%s)" /> ''' % variable

答案 1 :(得分:3)

在较新的Python(例如,2.6或更高版本)中,您可以使用.format()方法。你不需要逃避百分号:

s = '''<table width="90%">                                                                                
<tr>                                                                                                                                                                                                               
<td width="60%">HELLO</td>                                                                                                                                                                                         
<td width="40%">GOOD BYE</td>                                                                                                                                                                                      
</tr>                                                                                                                                                                                                              
</table>                                                                                                                                                                                                           
 <input type="button" value="BUTTON" onclick="function({funcarg})" /> '''

s.format(**{'funcarg': 'return'})