使用 python 2.7.4 和 3.3.1:
from textwrap import dedent as dd
name='Maruja'
print(dd('''
{0}:
_.-.
'( ^{_} (
`~\`-----'\\
)_)---)_)
'''.format(name)))
这是两者的关键错误:
$ python3 test.py # or python2 test.py
Traceback (most recent call last):
File "test.py", line 9, in <module>
'''.format(name)))
KeyError: '_'
使用 % 运算符它可以工作:
from textwrap import dedent as dd
name ='Maruja'
print(dd('''
%s:
_.-.
'( ^{_} (
`~\`-----'\\
)_)---)_)
''' % name))
没有错误,但为什么?
$ python3 test2.py # or python2 test2.py
Maruja:
_.-.
'( ^{_} (
`~\`-----'\
)_)---)_)
我一直无法弄清楚为什么会发生这种情况,并且我已经在多个环境中进行了测试,它有什么问题?