ValueError:格式字符不支持,构造字符串时出错
这个可以正常工作:
print "Hello World%s" %"!"
但是这个不行
print "Hello%20World%s" %"!"
错误信息是 ValueError: unsupported format character 'W' (0x57) at index 8
我正在使用 Python 2.7。
我为什么要这样做呢?因为 %20
在网址中用来代替空格,如果我使用它,就无法用 printf 格式来构建字符串。但为什么 Python 会这样呢?
6 个回答
8
你可能写错字了。在我的情况下,我本来想写的是 %s,却写成了 %w。
17
你可以用另一个%来转义%符号,所以可以写成%%20
这是一个相关的问题 当字符串包含"%s"但没有转义时的Python字符串格式化
80
你可以这样处理%符号,以避免它和%20混淆:
print "Hello%%20World%s" %"!"
或者你也可以试试使用字符串格式化的方法,像这样:
print "Hello%20World{0}".format("!")