在python格式字符串中'h'是什么意思?

时间:2013-08-11 17:44:21

标签: python string-formatting

这是一个有效的python格式字符串:

>>> wierd_format = '[%27he]'
>>> print wierd_format % 2.5
[        2.500000e+00]

但这不是:

>>> bad_format = '[%20qe]'
>>> print bad_format % 2.5
Traceback (most recent call last):
  File "prog.py", line 5, in <module>
    print bad_format % 2.5
ValueError: unsupported format character 'q' (0x71) at index 4

显然,h是受支持的格式字符。但是,documentation未提及h说明符。它做了什么?

2 个答案:

答案 0 :(得分:4)

来自文档:

  

长度修饰符(hlL)可能存在,但会被忽略,因为它不是必需的 - 例如, %ld%d相同。

答案 1 :(得分:3)

Python Docs说它是一个长度修饰符。

  

可能存在长度修饰符(h,l或L),但忽略它,因为它不是Python所必需的。所以例如%ld与%d相同。

它们看起来是一样的,

>>> "[%he]" %2.5
'[2.500000e+00]'
>>> "[%le]" %2.5
'[2.500000e+00]'
>>> "[%Le]" %2.5
'[2.500000e+00]'