Python String format() 例で説明
Python 文字列 format() とは?
Python 文字列 format() 最終的な文字列で有効な値を持つプレースホルダーで文字列を置換、置換、または変換するために使用される関数です。これは Python 文字列クラスの組み込み関数であり、書式設定された文字列を出力として返します。文字列内のプレースホルダーは中括弧で定義されています。
たとえば、「Guru99 へようこそ {}」.format('value here').
このチュートリアルでは、次のことを学びます:
- Python 文字列 format() とは?
- Python の format() 関数の構文
- string format() はどのように機能しますか?
- 例:空のプレースホルダーを文字列値に置き換えます
- 例:空のプレースホルダーを数値に置き換える
- 例:プレースホルダー内で変数またはキーワード引数を使用する
- 例:プレースホルダー内でインデックスまたは位置引数を使用する
- プレースホルダー内の書式設定
- format() でクラスを使用する
- format() で辞書を使用する
- 変数置換のパディング
Python の format() 関数の構文
templatestring.format(val1, val2...)
パラメータ
val1、val2 … : 中かっこ {} の形式のプレースホルダーを持つ特定のテンプレート文字列で置き換える必要がある値。プレースホルダーには、文字列、キーと値のペア、整数、浮動小数点数、文字などを使用できます。
戻り値:
中かっこで指定されたプレースホルダーの代わりに有効な値が置き換えられた、最終的な文字列が返されます。
プレースホルダー
テンプレート文字列のプレースホルダーは、中かっこを使用して表されます。 {}。プレースホルダーは空の {} にすることも、 {name} などの変数を持つことも、 {0} 、 {1} などの数値インデックスを持つこともできます。
string format() の仕組み
Python String format() メソッドは、プレースホルダーの元の文字列をスキャンします。プレースホルダーは、空の中かっこ ({})、位置引数、つまり、文字列に、{0}、{1} などのインデックス 0、1 のプレースホルダーを含めることができます。
キーワード引数の場合、{name}、{age} などの中括弧内に変数名が表示されます。空の中かっこの場合、フォーマットの値が中かっこ内で順番に置き換えられます。
最初の値は最初の空の中括弧に置き換えられ、その後に次の値が続きます。位置引数の場合、インデックスは 0 から始まります。値はコンマで区切られた形式で利用でき、0 th value は format 内の最初の値を指し、以下同様です。
キーワード引数の場合、つまり、プレースホルダー内で変数を使用する場合、必要に応じてフォーマット内で値の順序を指定できます。
format() に存在する変数名に基づいて値が置き換えられるため、ここでは順序は重要ではありません。文字列内のプレースホルダーを空、位置、およびキーワードまたは変数として使用する方法の例をいくつか示します。
例:空のプレースホルダーを文字列値に置き換える
以下の例では、文字列に空の中かっこ ({}) があります。フォーマットに指定された値は、中括弧 ({}) 内で置き換えられます。
置き換えたい値は文字列です。
例:
Python で String Formatting を使用して、中かっこ ({}) を文字列値に置き換えます。値は 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”) のように format 内で使用できます。 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 | プレースホルダー内で使用すると、10 進形式で出力されます | 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 | これは、固定小数点数形式を出力します。デフォルトでは、小数点以下 6 桁までの任意の数値が出力されます。小数点以下 2 桁までが必要な場合は、として使用します。 2f すなわち 2f の前のピリオド (.) | print("The value is : {:f}".format(40)) 出力: The value is : 40.000000 例:小数点以下 2 桁までの出力を表示します。
出力: The value is: 40.00 |
:o | これは 8 進数形式で出力されます | print("The value is : {:o}".format(500)) 出力: The value is : 764 |
:x | これは 16 進形式を小文字で出力します | print("The value is : {:x}".format(500)) 出力: The value is : 1f4 |
:X | これは大文字で 16 進形式を出力します。 | 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%). | print("The value is : {:%}".format(0.80)) 出力: The value is : 80.000000% この例は、プレースホルダー内で {:.0%} を使用して小数点以下の桁数をスキップする方法を示しています。
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 出力に示されているように、カンマ (,) が 1000 区切りとして追加されます。 |
: | これにより、正の数の前にスペースが追加されます | この例は、指定された数値の前にスペースまたはパディングを追加する方法を示しています。数字の 5 は、数字の前に必要なスペース数を示します。
出力: The value is: 40 |
:- | これにより、負の数の前にマイナス記号が追加されます | この例は、{:-} を使用して数値の前にマイナス (-) 記号を付けて出力を取得する方法を示しています。
出力: The value is: -40 |
:+ | プラス記号を使用して、数値が正であることを示すことができます | この例は、{:+} を使用して数値の前にプラス (+) 記号を付けて出力を取得する方法を示しています。
出力: The value is: +40 |
:= | 等号は、+/- 記号を左側に配置するために使用されます。 | この例は、{:=} を使用して等号の前にプラス (+/-) 記号を付けて出力を取得する方法を示しています。
出力: The value is -40 |
:^ | これにより、最終結果が中央揃えになります | この例は、{:^} を使用してテキストを中央揃えにする方法を示しています。数値 10 は、値が置き換えられたときに中央揃えで表示するために 10 個のスペースを追加するために使用されます。
出力: The value 40 is a positive value ここでは、最終的なテキストに 10 個のスペースを追加する 10 を使用できます。置換される値は、10 個のスペースの間で中央揃えになります。 10 のスペースは、置換された値の中央揃えを示すために追加されています。 |
:> | これにより、最終結果が右揃えになります | (:>10) を使用して 10 のスペースが追加され、置き換えられた値は右揃えになります。
出力: The value 40 is positive value |
:< | これにより、最終結果が左揃えになります | (:<10) を使用して 10 のスペースが追加され、置換される値は左揃えになります。
出力: 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 文字列クラスは、format() と呼ばれる重要な組み込みコマンドを提供します。このコマンドを使用すると、文字列を置換、置換、または最終的な文字列の有効な値を持つプレースホルダーに変換できます。
- 文字列モジュール Python 内のプレースホルダーは、中かっこで定義されます。たとえば、「Guru99 へようこそ {}」.format('value here').
- プレースホルダーは空の {} にすることも、 {name} などの変数を持つことも、 {0} 、 {1} などの数値インデックスを持つこともできます。
- パディングの追加、中央揃え、および数値の書式設定に役立つプレースホルダー内で Python の文字列書式設定を利用できます。
Python
- 部分文字列と例を含む Java String indexOf() メソッド
- Java String compareTo() メソッド:例での使用方法
- 例を使用した Python 文字列 strip() 関数
- 例を使用した Python 文字列 count()
- Python String find() メソッドと例
- 例を含む Python Lambda 関数
- 例を使用した Python round() 関数
- 例を使用した Python map() 関数
- Python Timeit() と例
- 例を使用したコレクション内の Python カウンター
- Python の type() と isinstance() と例