【发布时间】:2014-01-13 18:14:38
【问题描述】:
当我执行这些操作时,我会得到如下所示的预期结果:
>>> '{text:{fill}{align}{width}}'.format(text = 'abcdef', width = 8, fill = '~', align = '^')
'~abcdef~'
>>> '{0:~^8}'.format('abcdef')
'~abcdef~'
>>> '{0:~^8.4}'.format('abcdef')
'~~abcd~~'
>>> '{num:{fill}{align}{width}{type}}'.format(num = 12.34, width = 12, fill = '~', align = '^', type = 'f')
'~12.340000~~'
>>> '{0:~^12.4f}'.format(12.34)
'~~12.3400~~~'
但是,当我动态指定精度时,我得到的输出比预期的要宽:
>>> '{text:{fill}{align}{width}{precision}}'.format(text = 'abcdef', width = 8, fill = '~', align = '^', precision = .4)
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~abcd~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
>>> '{num:{fill}{align}{width}{precision}{type}}'.format(num = 12.34, width = 12, fill = '~', align = '^', type = 'f', precision = .4)
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~12.3400~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
我是不是做错了什么,有错误的期望,还是有错误?
我正在使用 Python 2.7.3
【问题讨论】:
标签: python string format precision