Python 文字列フォーマット() 例を使って説明する

⚡ スマートサマリー

Python String format() は、テンプレート文字列内の波括弧プレースホルダーを、指定された値に置き換える組み込みメソッドです。プレースホルダーには、空の波括弧、位置インデックス、またはキーワード名を指定でき、最終出力の数値、配置、およびパディングの書式指定子をサポートします。

  • 🔤 プレースホルダー: 中括弧 {} は、値が入る場所を示します。空の場合、番号が付けられた場合 {0}、名前が付けられた場合 {name} などです。
  • 🔢 位置とキーワード: format() 関数は、空の括弧を順番に、インデックス位置順に、または一致するキーワード名に基づいて埋めます。
  • 🎛️ 形式指定子: コロンは、10進数、2進数、固定小数点数、および16進数の出力に対応する{:d}、{:b}、{:.2f}、および{:x}などのコードを追加します。
  • ↔️ 配置とパディング: {:^10} または {:,} で幅の数字を中央揃えにし、間隔を追加し、千の位の区切り文字を挿入します。
  • 🧱 オブジェクトと辞書: プレースホルダーは、{c.attr} を使用してクラス属性を、{m[key]} を使用して辞書値を読み取ります。
  • 🤖 AI支援: AIコーディングアシスタントは、平易な言語のプロンプトからformat()関数呼び出しとf文字列の同等のコードを生成します。

Python 文字列形式()

何ですか Python 文字列フォーマット()?

Python 文字列形式() は、最終的な文字列の有効な値を持つプレースホルダーを使用して文字列を置換、置換、または変換するために使用される関数です。これは、 Python 文字列クラス。フォーマットされた文字列を出力として返します。文字列内のプレースホルダーは中括弧で定義されます。

例えば、「ようこそ Guru99 {}”.format('ここに値')

format()関数の構文 Python

templatestring.format(val1, val2...)

技術パラメータ

val1、val2 … : 中括弧 {} 形式のプレースホルダーを持つ、指定されたテンプレート文字列内で置換する必要がある値。プレースホルダーには、文字列、キー/値のペア、整数、浮動小数点数、文字などを使用できます。

戻り値

中括弧で指定されたプレースホルダーの代わりに有効な値が置き換えられた最終的な文字列を返します。

プレースホルダー

テンプレート文字列内のプレースホルダーは、中括弧 (例: {}) を使用して表されます。プレースホルダーは空の {} にすることも、たとえば {name} などの変数を含めることも、たとえば {0}、{1} などの数値インデックスを含めることもできます。

string format() はどのように機能するのでしょうか?

その Python 文字列形式() メソッドは、元の文字列をスキャンしてプレースホルダーを探します。プレースホルダーは空の中括弧 ({})、位置引数、つまり文字列にインデックス 0、1 (例: {0}、{1}) のプレースホルダーを含めることができます。

キーワード引数の場合、変数名は中括弧内に表示されます (例: {name}、{age})。中括弧が空の場合、フォーマットの値は中括弧内で順番に置き換えられます。

最初の値は最初の空の中括弧に置き換えられ、その後に次の値が続きます。 位置引数の場合、インデックスは 0 から始まります。 値はカンマで区切られた形式で使用できます。th value は、format 内の最初の値を指します。

キーワード引数の場合、つまり、プレースホルダー内で変数を使用する場合、必要に応じて形式内で値の順序を指定できます。

値は format() 内に存在する変数名に基づいて置き換えられるため、ここでは順序は重要ではありません。 ここでは、文字列内のプレースホルダーを空、位置、キーワードまたは変数を使用して使用する方法の例をいくつか示します。

例: 空のプレースホルダーが文字列値に置き換えられる

以下の例では、文字列に空の中括弧 ({}) があります。フォーマットに指定された値は、中括弧 ({}) 内で置き換えられます。

置換する値は文字列です。

例:

文字列フォーマットの使用 Python波括弧 ({}) を文字列値に置き換えたい。値は format(“Guru99”)。実行時には、中括弧 {} は に置き換えられます。 Guru99、そして最終的な文字列は「Welcome to」となります Guruチュートリアル99件。

print ("Welcome to {} tutorials".format("Guru99"))

出力:

Welcome to Guru99 tutorials

例: 空のプレースホルダーは数値に置き換えられます

以下の例では、元の文字列内の数値を置き換えます。数値が必要な場所に中括弧 ({}) を追加します。実行すると、空の中括弧 ({}) が数値に置き換えられます。

例:

また、format() を使用して文字列内に数字を挿入することもできます。例では、format() 内にある空のプレースホルダー {} を数字 99 に置き換える方法を示します。

print ("Welcome to Guru{} Tutorials".format("99"))

出力:

Welcome to Guru99 Tutorials

例: プレースホルダー内での変数またはキーワード引数の使用

以下の例に示すように、中括弧内の変数を利用することもできます。変数は format() 内で定義されます。したがって、実行すると、変数に割り当てられた値が元の文字列内で置き換えられます。

例:

波括弧の中に変数を使用できます。たとえば、{name} {num}。name と num 変数の値は、format(name=” のようにフォーマット内で使用できます。Guru」、num=”99″)。nameとnumに指定された値は、{name}と{num}の内部で置き換えられます。

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

出力:

Welcome to Guru99 Tutorials

例: プレースホルダー内でのインデックスまたは位置引数の使用

値は、プレースホルダー内の 0、1、2 などのインデックスを使用して置き換えることができます。 以下の例に示すように、値は format() から順に取得されます。

例:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

出力:

Welcome to Guru99 Tutorials

例: 文字列内で複数のプレースホルダーを使用する

この例では、複数の空のプレースホルダーを使用します。

例:

この例で使用されている文字列には複数の空のプレースホルダーがあり、各プレースホルダーは format() 内の値を参照します。最初の値は最初のプレースホルダーに置き換えられ、以下同様になります。

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

出力:

Guru99 is totally new kind of learning experience!

プレースホルダー内の書式設定

プレースホルダを空にしたり、変数やインデックスを置いたりできることを見てきました。また、 Python プレースホルダー内の文字列の書式設定。

フォーマットのリストはこちら

フォーマット 詳細説明 例:
:d プレースホルダー内で使用すると、XNUMX 進数形式で出力が得られます。 print("The binary to decimal value is : {:d}".format(0b0011))

出力:

The binary to decimal value is  : 3
:b プレースホルダー内で使用すると、バイナリ形式で出力が得られます。 print("The binary value is : {:b}".format(500))

出力:

The binary value is : 111110100
:e プレースホルダー内で使用すると科学的形式で出力が得られ、出力の指数 e は小文字になります。 print("The scientific value is : {:e}".format(40))

出力:

The scientific format value is : 4.000000e+01
:E プレースホルダー内で使用すると科学的形式で出力が得られ、出力の指数 E は大文字になります。 print("The scientific value is : {:E}".format(40))

出力:

The scientific value is : 4.000000E+01
:f これにより、固定小数点数形式が出力されます。 デフォルトでは、小数点以下 2 桁の任意の数値が出力されます。 小数点以下 2 桁までが必要な場合は、次のように使用します。 2fつまり。 XNUMXfの前にピリオド(.) print("The value is : {:f}".format(40))

出力:

The value is  : 40.000000

例: 小数点第 2 位までの出力を表示します。

print("The value is : {:.2f}".format(40))

出力:

The value is: 40.00
:o これにより、XNUMX 進形式が出力されます print("The value is : {:o}".format(500))

出力:

The value is  : 764
:x これにより、XNUMX 進形式が小文字で出力されます print("The value is : {:x}".format(500))

出力:

The value is  : 1f4
:X これにより、XNUMX 進形式が大文字で出力されます。 print("The value is : {:X}".format(500))

出力:

The value is  : 1F4
:n これにより数値形式が出力されます。 print("The value is : {:n}".format(500.00))

出力:

The value is  : 500
:% これにより、出力がパーセント形式で表示されます。
デフォルトでは、パーセント出力の小数点以下 6 桁が表示されます。小数点以下の値が不要な場合は、ピリオドと 0、つまり (:.0%) を使用できます。
print("The value is : {:%}".format(0.80))

出力:

The value is  : 80.000000%

この例では、プレースホルダー内で {:.0%} を使用して小数点以下の桁をスキップする方法を示します。

print("The value is : {:.0%}".format(0.80))
出力:

The value is: 80%
:_ これにより、千の位の区切り文字としてアンダースコアが出力されます。 Python 3.6以降から利用可能です。 print("The value is {:_}".format(1000000))

出力:

The value is  : 1_000_000
:, これにより、千の区切り文字としてカンマが出力されます print("The value is : {:,}".format(1000000))

出力:

The value is  : 1,000,000

出力に示されているように、XNUMX の区切り文字としてカンマ (,) が追加されます。

: これにより、正の数字の前にスペースが追加されます この例では、指定された数値の前にスペースまたはパディングを追加する方法を示します。 数字 5 は、数字の前に必要なスペース数を示します。

print("The value is: {:5}".format(40))

出力:

The value is:    40
:- これにより、負の数の前にマイナス記号が追加されます この例は、{:-} を使用して数値の前にマイナス (-) 記号を付けた出力を取得する方法を示しています。

print("The value is: {:-}".format(-40))

出力:

The value is: -40
:+ プラス記号を使用して、数値が正であることを示すことができます この例は、{:+} を使用して数値の前にプラス (+) 記号を付けた出力を取得する方法を示しています。

print("The value is: {:+}".format(40))

出力:

The value is: +40
:= 等号は、左側に +/- 記号を配置するために使用されます。 この例では、{:=} を使用して等号の前にプラス (+/-) 符号を付けた出力を取得する方法を示します。

print("The value is {:=}".format(-40))

出力:

The value is -40
:^ これにより、最終結果が中央揃えになります この例では、{:^} を使用してテキストを中央揃えにする方法を示しています。 数値 10 は、値を置換するときに中央揃えを示すために 10 個のスペースを追加するために使用されます。

print("The value {:^10} is positive value".format(40))

出力:

The value     40     is a positive value

ここで 10 を使用すると、最終的なテキストに 10 個のスペースが追加され、置換される値は 10 個のスペースの間で中央揃えになります。 10 のスペースは、置換された値の中央揃えを示すために追加されています。

:> これにより、最終結果が右揃えになります。 (:>10) を使用して 10 のスペースが追加され、置換された値は右揃えになります。

print("The value {:>10} is positive value".format(40))

出力:

The value         40 is positive value
:< これにより、最終結果が左揃えになります (:<10) を使用して 10 のスペースが追加され、置換される値は左揃えで配置されます。

print("The value {:<10} is positive value".format(40))

出力:

The value 40         is positive value

format() でクラスを使用する

この例では、クラスを作成し、.format内でクラスのオブジェクトを使用します。 Python メソッド。プレースホルダーは、クラス オブジェクトを使用してクラスのプロパティまたはメンバーを参照します。

例:

クラスは、format(c=MyClass()) 内で呼び出されます。オブジェクト c は、クラス MyClass() 内のプロパティとメソッドへの参照を持ちます。

class MyClass:
    msg1="Guru"
    msg2="Tutorials"   

print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

出力:

Welcome to Guru99 Tutorials!

format() で辞書を使用する

以下の例に示すように、format() 内で辞書を使用することもできます。

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

出力:

Welcome to Guru99 Tutorials!

パディング変数の置換

string.format() メソッドを使用すると、文字列内にプレースホルダーを使用してパディングやスペースを追加できます。

例:

以下の例では、format() を使用してプレースホルダー内にスペースを追加します。スペースを追加するには、コロン (:) の後の波括弧内にスペースの数を指定する必要があります。したがって、プレースホルダーは {:5} のようになります。

print("I have {:5} dogs and {:5} cat".format(2,1))

出力:

I have     2 dogs and     1 cat

プレースホルダー内にインデックスを指定することもできます (例: {0:5})。0 は形式内の最初の値を指します。

print("I have {0:5} dogs and {1:5} cat".format(2,1))

出力:

I have     2 dogs and     1 cat

よくあるご質問

f弦が追加されました Python 3.6では、式を直接埋め込むことができ、通常はより高速に実行されます。format() メソッドは、古いバージョンでも引き続き機能します。 Python バージョン、およびテンプレートが変数、ファイル、またはユーザー入力から取得される場合。

% 演算子は %s や %d といった printf スタイルの記号を使用しますが、format() は中括弧のプレースホルダーを使用して名前、インデックス、およびより豊富な指定子をサポートします。format() は並べ替えとレイアウトの処理がより簡潔であるため、現代のコードでは % に代わって使用されています。

Double 彼らから逃れるための支柱。タイping 開き括弧が2つあると1つのリテラル括弧が出力され、閉じ括弧が2つあると1つの閉じ括弧が出力されるため、実際のプレースホルダーは同じテンプレート文字列内でリテラル括弧と並行して機能します。

位置指定値が欠落している場合は IndexError が発生し、キーワードまたは辞書名が欠落している場合は KeyError が発生します。プレースホルダーよりも多くの値を渡すことは可能で、余分な値は無視されるため、エラーとなるのは参照の欠落のみであり、過剰な参照はエラーになりません。

format() メソッドは、 Python 2.6とすべての Python 3 リリース。自動フィールド番号付けでは、{0} {1} と書き込む代わりに中括弧が空のままになります。 Python バージョン2.7または3.1以降。

いいえ。 Python 文字列は不変であるため、format() はテンプレートを変更せずに新しい文字列を作成して返します。フォーマットされたテキストを後で使用するために、結果を変数に代入します。たとえば、message = template.format(value) のように記述します。

機械学習コードでは、format() 関数を使用して読みやすいログを作成したり、言語モデルのプロンプトテンプレートを組み立てたり、精度などの指標を小数点以下固定値で出力したりします。整形された出力は、実験結果やモデルレポートの比較を容易にします。

はい。GitHub Copilotは、出力内容を説明する短いコメントからformat()関数とその指定子を自動補完します。Agentic AIアシスタントはさらに高度な機能を提供し、format()をf文字列に変換したり、アライメントを修正したり、テストを自動的に実行したりします。