web-dev-qa-db-ja.com

「ValueError:フォーマットの長さゼロのフィールド名」エラーPython 3.0,3.1,3.2

Python(より具体的には3))を学習しようとしていますが、このエラーが発生しています:

ValueError: zero length field name in format

私はそれをグーグルで調べましたが、番号を指定する必要があることがわかりました:

a, b = 0, 1
if a < b:
     print('a ({0}) is less than b ({1})'.format(a, b))
else:
     print('a ({0}) is not less than b ({1})'.format(a, b))

そして、チュートリアル(lynda.comから)が実際に行うように言っているのではありません:

a, b = 0, 1
if a < b:
     print('a ({}) is less than b ({})'.format(a, b))
else:
     print('a ({}) is not less than b ({})'.format(a, b))

以下のチュートリアルim Python 3.1、およびim 3.2を使用していて、このエラーについて読んだことは、これは<3.1(3.0)でのみ発生するということです。何か間違ったことをしていますか?

また、ゆっくり話してください;)これは文字通り私の最初の夜の学習Pythonであり、Pythonで書いた2番目の「スクリプト」のみです。

119
Oscar Godson

私はあなたがpython 2.6を偶然に実行していると推測します。

この機能は、python 3を使用している場合は少なくとも3.1、またはpython 2。

129
Winston Ewert

Python 2.6および3.0にはフィールド番号が必要です。 Python 2.7以降 および3.1以降では、省略できます。

バージョン2.7で変更:位置引数指定子は省略できるため、「{} {}」は「{0} {1}」と同等です。

python2.6.4>>> print '|{0:^12}|{1:^12}|'.format(3,4)
|     3      |     4     |
148

Eclipseを使用している場合は、[ウィンドウ]-> [設定]-> [PyDev]-> [インタープリター-Python]を確認する必要があります。そこに通訳のリストがあります(名前と場所を含む)。現在のプロジェクトで、たとえば/ usr/bin/pythonにあるインタープリターを使用している場合、おそらく/ usr/bin/python -V whillを実行すると、「Python 2.6.6」のようなものが表示されます。そして、Winston Ewertが書いたようにあなたの答えがあります。

(「新規...」ボタンをクリックし、「ロケーション」として/ usr/bin/python3を指定するだけで、新しいインターパーターを追加できます。その後、おそらくプロジェクト設定を変更する必要があります(設定-> PyDev-インタープリター/ Grammar)。

2
ilektrik