format() - Pythonで文字列をフォーマットするformat()関数
投稿日 2025年03月11日 更新日 2025年03月11日
Python初心者のための「ValueError: incomplete format」エラーの解決方法と文字列フォーマットの基本を解説します。
このエラーは、`format()`メソッドを使用する際によく発生する問題です。主な原因は、プレースホルダー(`{}`)の数と、`format()`に渡す値の数が一致していないことです。
エラーの例
# エラーが発生するコード
text = "Name: {} Age: {}".format("John")
このコードを実行すると以下のエラーが表示されます:
ValueError: incomplete format
解決方法
1. プレースホルダーと値の数を一致させる
# 正しいコード
text = "Name: {} Age: {}".format("John", 25)
print(text) # 出力: Name: John Age: 25
2. インデックスを使用する
# インデックスを指定する方法
text = "Name: {0} Age: {1}".format("John", 25)
print(text) # 出力: Name: John Age: 25
# インデックスの再利用
text = "Name: {0} Age: {1}, Hello {0}!".format("John", 25)
print(text) # 出力: Name: John Age: 25, Hello John!
3. 名前付きプレースホルダーを使用する
# 名前付きプレースホルダー
text = "Name: {name} Age: {age}".format(name="John", age=25)
print(text) # 出力: Name: John Age: 25
よくある間違いと注意点
1. プレースホルダーの数が多すぎる
# エラー
text = "Name: {} {} {}".format("John", "Smith") # 値が足りない
2. プレースホルダーの数が少なすぎる
# エラー
text = "Name: {}".format("John", "Smith") # 余分な値がある
実践的な使用例
数値のフォーマット
# 小数点以下の桁数指定
price = "価格: {:.2f}円".format(1234.5678)
print(price) # 出力: 価格: 1234.57円
# 桁区切り
number = "数値: {:,}".format(1000000)
print(number) # 出力: 数値: 1,000,000
複数の変数を使用
user = {
'name': 'John',
'age': 25,
'country': 'USA'
}
text = "名前: {name}, 年齢: {age}, 国: {country}".format(**user)
print(text) # 出力: 名前: John, 年齢: 25, 国: USA
まとめ
- `format()`メソッドを使用する際は、プレースホルダーの数と値の数を必ず一致させる
- インデックスや名前付きプレースホルダーを使用すると、より柔軟なフォーマットが可能
- 数値フォーマットや複数変数の使用など、様々な応用が可能
以上の方法を理解することで、「ValueError: incomplete format」エラーを避け、効果的な文字列フォーマットを実現できます。
関連記事

新着記事
4
5
6
関連記事
4
5
6


60秒で完了