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」エラーを避け、効果的な文字列フォーマットを実現できます。
Resumy AI監修者
監修者: RESUMY.AI編集部

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

監修者: RESUMY.AI編集部
Resumy AI監修者

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

AI職務経歴書作成サービス RESUMY.AIAI職務経歴書作成サービス RESUMY.AI
60秒で完了