1. ホーム
  2. python

[解決済み] Python2.6.6でValueError: 0 length field name in formatが発生した。

2022-02-13 19:01:46

質問

私はこのPythonシェルを使って文字列を生成しています。

>>>':'.join("{:x}\n".format(random.randint(0, 2**16 - 1)) for i in range(4))

Python2.7.5でこのシェルを実行すると、すべてがうまくいく。しかし、次のような現象が発生します。 ValueError: zero length field name in format の場合、Pythonのバージョンは 2.6.6 . このシェルは、Pythonのバージョンが以下の場合、どのように実行すればよいのでしょうか。 2.6.6 ?

解決方法は?

Pythonバージョン2.6以前では、formatフィールドに明示的に番号を振る必要があります。

':'.join("{0:x}\n".format(random.randint(0, 2**16 - 1)) for i in range(4))
#          ^

で読むことができます。 ドキュメント :

バージョン2.7で変更:位置引数の指定子を省略できるようになったので '{} {}' は、次のように等価です。 '{0} {1}' .