%字符的转义序列

时间:2013-12-05 10:55:11

标签: python escaping

我有以下代码可以正常使用。

a = 5
b = "%"
print "Hello %d \%s" % (a ,b)

输出:

$ python a.py
Hello 5 \%

但如果我尝试以这种方式编写代码

a = 5
print "Hello %d \%" % a

它给出错误,似乎转义序列不适用于'%'

  File "a.py", line 2, in <module>
    print "Hello %d \%" % a
ValueError: incomplete format

为了更加适应,它可以在第二个程序中输入'%'字符。

3 个答案:

答案 0 :(得分:3)

是的,它被称为格式转义。

>>> print 'hello %s %%' % 5
hello 5 %

你只需要使用2%。

Documentation:

  

'%%'没有转换参数,导致'%'字符   结果

答案 1 :(得分:3)

使用new-style string formatting

print "Hello {} %".format(a)
  

这种字符串格式化方法是Python 3中的新标准,应该优先于新代码中的%格式。

或双%

print "Hello %d %%" % a

答案 2 :(得分:0)

使用字符串格式("some %s" % ('string'))时,必须转义%字符。要做到这一点,只需使用%%

如果您没有格式化字符串,则不必这样做。

有关字符串格式的信息,请参阅this guide