Pythonのformatメソッドを完全攻略!使い方からカスタマイズまで10の手順

Pythonのformatメソッドの詳細な使い方とカスタマイズのハンズオンガイドPython
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonのformatメソッドは、文字列の中にあるプレースホルダー(空欄)に値を挿入するためのものです。

これは非常に強力なツールで、Pythonプログラミングの初心者にとっては必須の知識です。

本記事では、このformatメソッドを詳細に解説します。

基本的な使い方から高度なカスタマイズ方法まで、手順を追って説明していきます。

●Pythonとは

Pythonは、1991年にグイド・ヴァンロッサムによって開発された汎用プログラミング言語です。

その設計哲学は、コードの可読性を重視しています。

これは、シンプルで読みやすいコードを書くことを促します。

また、複雑なシステムを開発するための高水準なデータ構造を提供しています。

○Pythonの特徴

Pythonは、初心者から熟練者まで幅広いユーザーに支持されています。

その理由は、Pythonが提供する特徴によるところが大きいです。

主な特徴として、次のようなものがあります。

  1. コードの可読性と簡潔さ
  2. 幅広いライブラリとモジュール
  3. オブジェクト指向、手続き型、関数型など多様なプログラミングスタイルのサポート

●formatメソッドとは

Pythonの文字列操作の中で、formatメソッドは特に便利な機能です。

文字列内の特定の位置に値を挿入するために使用します。

これにより、動的に内容を変更することが可能になります。

○formatメソッドの基本

formatメソッドの基本的な使い方は、文字列に中括弧{}を含め、その後に.formatメソッドを呼び出し、中括弧の中に挿入したい値を指定します。

中括弧はプレースホルダー(値を挿入する場所)として機能します。

print("こんにちは、{}さん".format("山田"))

このコードでは、”こんにちは、{}さん”という文字列内のプレースホルダー{}に、.formatメソッドを使って”山田”という文字列を挿入しています。

この例では、”山田”という名前を持つ人に挨拶しています。

このコードを実行すると、”こんにちは、山田さん”という結果が出力されます。

●formatメソッドの使い方

それでは、formatメソッドの使い方について、さらに詳しく見ていきましょう。

具体的なサンプルコードを使って説明します。

○サンプルコード1:基本的な使い方

print("私の名前は{}、年齢は{}歳です。".format("田中", 25))

このコードでは、”私の名前は{}、年齢は{}歳です。”という文字列内の2つのプレースホルダー{}に、.formatメソッドを使って”田中”と25という値を順に挿入しています。

この例では、自己紹介をしています。このコードを実行すると、”私の名前は田中、年齢は25歳です。”という結果が出力されます。

○サンプルコード2:複数の変数を使う

name = "佐藤"
age = 30
print("私の名前は{}、年齢は{}歳です。".format(name, age))

このコードでは、変数nameとageを作成し、その値を.formatメソッドを使って文字列内のプレースホルダーに挿入しています。

この例では、変数を使って自己紹介をしています。

このコードを実行すると、”私の名前は佐藤、年齢は30歳です。”という結果が出力されます。

○サンプルコード3:辞書型で値を指定する

person = {"name": "鈴木", "age": 35}
print("私の名前は{name}、年齢は{age}歳です。".format(**person))

このコードでは、辞書型の変数personを作成し、その値を.formatメソッドを使って文字列内のプレースホルダーに挿入しています。

この例では、辞書型変数を使って自己紹介をしています。

このコードを実行すると、”私の名前は鈴木、年齢は35歳です。”という結果が出力されます。

●formatメソッドの応用例

formatメソッドは、単純な値の挿入だけでなく、値の整形や調整も可能です。

○サンプルコード4:数字を整形する

num = 1234567.89123
print("{:.2f}".format(num))

このコードでは、”1234567.89123″という浮動小数点数を.formatメソッドを使って整形しています。

この例では、数字を小数点以下2桁までに丸めています。

このコードを実行すると、”1234567.89″という結果が出力されます。

○サンプルコード5:文字列の中央揃え

s = "Python"
print("{:^10}".format(s))

このコードでは、”Python”という文字列を.formatメソッドを使って整形しています。

この例では、文字列を10文字分の幅の中で中央揃えにしています。

このコードを実行すると、” Python “(前後に2つの空白が付いた状態)という結果が出力されます。

●注意点と対処法

しかし、formatメソッドを使う上で注意しなければならない点もあります。

それでは、その注意点とそれに対する対処法を説明します。

○エラーが発生する可能性がある状況

  1. プレースホルダーの数と.formatメソッドの引数の数が一致しない場合
  2. 辞書型で値を指定する際に、プレースホルダーのキーが辞書に存在しない場合

○それぞれのエラーへの対処法

  1. プレースホルダーの数と.formatメソッドの引数の数を一致させるようにしましょう。
    それぞれの数が一致していないと、IndexErrorが発生します。
  2. 辞書型で値を指定する際には、プレースホルダーのキーが辞書に存在することを確認しましょう。
    存在しないキーを指定すると、KeyErrorが発生します。

●formatメソッドのカスタマイズ

さらに進んで、formatメソッドをカスタマイズする方法もあります。

これは、特定のオブジェクトに対して独自の表示形式を設定するために使います。

○サンプルコード6:カスタムフォーマット指定子の作成

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __format__(self, format_spec):
        if format_spec == 'name-first':
            return '{} {}'.format(self.name, self.age)
        elif format_spec == 'age-first':
            return '{} {}'.format(self.age, self.name)
        else:
            return '{} {}'.format(self.name, self.age)

p = Person("山田", 40)
print("{:name-first}".format(p))
print("{:age-first}".format(p))

このコードでは、Personというクラスを作成し、その中にformatメソッドを定義しています。

このformatメソッドでは、format_specという引数に基づいて、名前と年齢の表示順を制御しています。

この例では、Personオブジェクトの表示形式をカスタマイズしています。

このコードを実行すると、”山田 40″と”40 山田”という2つの結果が順に出力されます。

まとめ

以上、Pythonのformatメソッドについて詳細に解説しました。

この記事を読んで、Pythonのformatメソッドを効果的に活用するための知識とスキルを得ることができました。

これからも、この知識を活かして、Pythonプログラミングを進めていきましょう。