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

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

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

たとえば、「Guru99 {} へようこそ」.format('ここの値')。

format()関数の構文 Python

templatestring.format(val1, val2...)

Parameters

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 Guru99 tutorials になります。

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

まとめ

  • Python string クラスには、format() と呼ばれる重要な組み込みコマンドが用意されており、このコマンドは、最終的な文字列で有効な値を持つプレースホルダーを使用して文字列を置換、代入、または変換するのに役立ちます。
  • 文字列モジュール内のプレースホルダー Python 中括弧で定義されます。例: “Welcome to Guru99 {}".format('value here')。
  • プレースホルダーは空の {} にすることも、 {name} などの変数を含めることも、{0} 、 {1} などの数値インデックスを含めることもできます。
  • 文字列フォーマットは、 Python プレースホルダー内では、パディングの追加、中央揃え、数値の書式設定にも役立ちます。