1. ホーム
  2. python

[解決済み] Pythonの書式指定子内で変数名を使うには?

2022-02-11 10:08:01

質問

Pythonの文字列書式指定子の内部で変数を使用することは可能でしょうか?

試してみました。

display_width = 50
print('\n{:^display_width}'.format('some text here'))

を取得しますが ValueError: Invalid format specifier . また display_width = str(50)

を入力しただけでは print('\n{:^50}'.format('some text here')) は正常に動作します。

解決方法は?

はい、しかし、あなたはそれらを引数として渡す必要があります format でラップして参照します。 {} 引数名そのものを指定するのと同じように。

print('\n{:^{display_width}}'.format('some text here', display_width=display_width))

あるいは、もっと短いが、もう少し明示的でないもの。

print('\n{:^{}}'.format('some text here', display_width))

この質問が最初に投稿されてから、Python 3.6ではf-stringが追加され、これを使えば format また、キーワード引数として変数名を渡す必要がなく、スコープ内の変数を使用します。

display_width = 50
text = 'some text here'
print(f'\n{text:^{display_width}}')