Python %字符的转义序列
我有一个下面的代码,它工作得很好Python %字符的转义序列,python,escaping,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: inco
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
文件“a.py”,第2行,在
打印“Hello%d\%%”a
ValueError:格式不完整
更准确地说,在第二个程序中输入“%”字符是一种更好的方法。是的,它被称为格式转义
>>> print 'hello %s %%' % 5
hello 5 %
你只需要使用2%
“%%”未转换任何参数,结果在
结果
是的,这叫做格式转义
>>> print 'hello %s %%' % 5
hello 5 %
你只需要使用2%
“%%”未转换任何参数,结果在
结果
使用字符串格式时(
“某些%s”%('string')
),必须转义%
字符。要做到这一点,只需使用%%
如果字符串未格式化,则不必这样做
请参阅关于字符串格式。使用字符串格式(
“某些%s”%(“字符串”)
)时,必须转义%
字符。要做到这一点,只需使用%%
如果字符串未格式化,则不必这样做
请参阅关于字符串格式的说明。使用:
这种字符串格式化方法是Python 3中的新标准,应该优先于新代码中的%
格式
或双精度%
:
print "Hello %d %%" % a
使用:
这种字符串格式化方法是Python 3中的新标准,应该优先于新代码中的%
格式
或双精度%
:
print "Hello %d %%" % a
请注意,
%
-格式有一些可能会产生令人惊讶的结果。您应该改用str.format
,从这个角度来看,这更安全一些。特别是,如果在字符串中使用多种格式,则必须使用具有值的元组或映射。使用任何其他对象(即使是列表
)都是“未定义的行为”(请参阅),范围从给出预期的输出到引发异常。请注意,%
-格式有一些可能会给出令人惊讶的结果。您应该改用str.format
,从这个角度来看,这更安全一些。特别是,如果在字符串中使用多种格式,则必须使用具有值的元组或映射。使用任何其他对象(即使是列表
)都是“未定义的行为”(请参阅),范围从给出预期的输出到引发异常。要在新样式的格式中转义'{'
和'}
,同样的技巧也适用:'{'.format()='{'
,以及转义'{'
和'}“
在新样式格式中,同样的技巧也适用:”{{{.format()=='{'
。