在python的字符串格式化里,以前常常使用print() %的格式来进行,但这种格式会让有经验的程序也会出错,比如%(name)s。
结果输出如下:五子棋游戏开发
http://edu.csdn.net/course/detail/5487
另外在只作字符串替换的场合时,使用%这种格式化,也比较复杂,那么有没有简单的字符串替换的方法呢?答案是有的,就是使用string.Template。在string.Template里,它使用$为替换名称的开始,比如$var这样写。当然也可以使用${var}这种方式,下面就来比较目前三种字符串格式化的方法,代码如下:
import string
values = {'var': 'foo'}
t = string.Template("""
Variable : $var
Escape : $$
Variable in text: ${var}iable
""")
print('TEMPLATE:', t.substitute(values))
s = """
Variable : %(var)s
Escape : %%
Variable in text: %(var)siable
"""
print('INTERPOLATION:', s % values)
s = """
Variable : {var}
Escape : {{}}
Variable in text: {var}iable
"""
print('FORMAT:', s.format(**values))
结果输出如下:
TEMPLATE:
Variable : foo
Escape : $
Variable in text: fooiable
INTERPOLATION:
Variable : foo
Escape : %
Variable in text: fooiable
FORMAT:
Variable : foo
Escape : {}
Variable in text: fooiable