1

私は 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]) この問題に関するアイデアに感謝します;-)。

4

2 に答える 2

2

これは既知のバグであり、バージョン 2.0 で修正される必要があります。当面は、機能する古い構文%fを使用できます。

于 2012-04-23T08:28:12.703 に答える
0

誰かがより詳細な回答を提供できるでしょうが、ここで起こっていると思うのは、"{0:<12g}".format(i)特別なフォーマットを使用しているということです。試し"\{{0}:<12g\}".format(i)てみれば、おそらくより良い結果が得られるでしょう。{}そこでスラッシュを使用すると、エラーの原因である 'sがエスケープされます。

于 2012-04-23T08:13:32.393 に答える