1

変数から標準のバイナリ形式の長さを指定しようとしていますが、何らかの理由で機能しません。書式設定が間違っているか、変数を含めていますか?

comp.write("{0:%ib}".format(I) % num_bits)

ValueError: 変換指定が無効です

4

2 に答える 2

3

まず、順序が間違っています。

("{0:%ib}" % num_bits).format(I)

第二に、これはそれを行う方法ではありません! 書式設定演算子の種類を混同することは、一緒に実行できることを知らないことを意味します。あなたがしたい:

"{:{}b}".format(I, num_bits)

そして、本当に2つのステップでそれをしたい場合:

"{{:{}b}}".format(num_bits).format(I)

{{}}はエスケープされるため、最初の の後に単一の中括弧に変換されます.format

于 2013-09-24T10:24:49.900 に答える
2

あなたは間違った方法で補間を行っています。%iに渡す前に を解決する必要がありますformat。これはうまくいきます:

comp.write(("{0:%ib}" % num_bits).format(I))

しかし、かなりひどいので、おそらく2つに分割したいと思うでしょう:

fmt = "{0:%ib}" % num_bits
comp.write(fmt.format(I))
于 2013-09-24T10:22:42.313 に答える