ValueError:'str'类型对象的未知格式代码'g'

时间:2012-04-23 07:58:44

标签: python numpy

我是Python的新手,我正在尝试编写一个简单的打印函数但是我遇到了一个奇怪的错误。这是我的代码:

#! /usr/bin/env python3.2
import numpy as np

a=np.arange(1,10,1)
print(a)
for i in a:
    print(i)
    print(type(i))
    print("{0:<12g}".format(i))

输出结果为:

[1 2 3 4 5 6 7 8 9]
1
<class 'numpy.int64'>
Traceback (most recent call last):
  File "./test.py", line 9, in <module>
    print("{0:<12g}".format(i))
ValueError: Unknown format code 'g' for object of type 'str'

为什么print会将“numpy.int64”作为字符串?我必须补充说,它适用于正常列表:(例如[1,2,3,4])我会非常感谢有关此问题的任何想法,谢谢; - )。

2 个答案:

答案 0 :(得分:1)

这是known bug,应该在2.0版中修复。在此期间,您可以使用有效的旧语法%f

答案 1 :(得分:0)

有人可以给你一个更深入的答案,但我认为这里发生的是你正在使用"{0:<12g}".format(i)使用特殊格式。如果您尝试"\{{0}:<12g\}".format(i),您可能会获得更好的结果。使用斜杠可以逃避{},这就是错误。