Python 文字列のフォーマット – 文字列をフォーマットするには?
文字列の書式設定を使用すると、変数と値を組み合わせて動的な文字列を作成できます。この記事では、文字列をフォーマットする 5 つの方法について説明します。
理解を深めるために、例を使用して文字列の書式設定のさまざまな方法を学びます。さっそく見てみましょう!
Python で文字列をフォーマットする方法
文字列の書式設定を実行するには 5 つの異なる方法があります。 パイソン
- % 演算子を使用した書式設定。
- format() 文字列メソッドによる書式設定。
- f-string と呼ばれる文字列リテラルを使用した書式設定。
- 文字列テンプレートクラスを使用した書式設定
- center() 文字列メソッドによる書式設定。
したがって、上記の方法全体を確認し、どの文字列フォーマット戦略が最適であるかにも焦点を当てます。
1. % 演算子を使用して文字列をフォーマットする方法
これは文字列フォーマットの最も古い方法です。ここではモジュロを使用します % オペレーター 。モジュロ % 文字列フォーマット演算子としても知られています。
% 演算子を使用した Python フォーマット文字列
「The mangy, scrawny scanny stone %s gobbled down % ‘hurriedly’」という式では、文字列内の %s プレースホルダーが値「hurriedly」に置き換えられます。
Python3
print> (> 'The mangy, scrawny stray dog %s gobbled down'> %> 'hurriedly'> +> > 'the grain-free, organic dog food.'> )> |
出力
The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.
モジュロ演算子を使用した複数の文字列の挿入
ここでは、% 演算子を使用して複数の文字列を挿入しています。
Python3
x> => 'looked'> print> (> 'Misha %s and %s around'> %> (> 'walked'> ,x))> |
出力
Misha walked and looked around
% 演算子を使用した Python での精度処理
浮動小数点数は次の形式を使用します。 %a.bf 。ここ、 ある 文字列内に存在する最小桁数になります。数値全体の桁数がこれに満たない場合は、空白が埋め込まれる可能性があります。
これに近いところでは、 彼氏 小数点以下何桁表示するかを表します。
このコードでは、文字列「円周率の値は: %5.4f」に書式指定子 %5.4f が含まれています。 %5.4f 書式指定子は、最小幅 5、小数点以下 4 桁の精度で浮動小数点数を書式設定するために使用されます。
Python3
print> (> 'The value of pi is: %5.4f'> %> (> 3.141592> ))> |
出力
The value of pi is: 3.1416
複数のフォーマット変換タイプ
指定されたコードでは、書式設定文字列 Python が %d,%f を使用して整数および浮動小数点に変換されます。
Python3
variable> => 12> string> => 'Variable as integer> => %> d
> Variable as> float> => %> f'> %> (variable, variable)> print> (string)> |
出力
Variable as integer = 12 Variable as float = 12.000000
注記: % 形式の詳細については、を参照してください。 % を使用した Python での文字列の書式設定
2. format() メソッドを使用して文字列をフォーマットする方法
Format() メソッド 複雑な文字列フォーマットをより効率的に処理するために Python3 で導入されました。
フォーマッタは、1 つ以上の中括弧 { } で定義された 1 つ以上の置換フィールドとプレースホルダを文字列に挿入し、 str.format() 。プレースホルダーに入れて、format 関数にパラメーターとして渡された文字列と連結する値。
構文: 「ここに文字列 {}、その後 {} も文字列」.format('something1','something2')
format() メソッドを使用した Python の文字列のフォーマット
このコードは、{} をプレースホルダーとして使用し、プレースホルダーと「等しい」ものに対して .format() メソッドを呼び出しています。
Python3
print> (> 'We all are {}.'> .> format> (> 'equal'> ))> |
出力
We all are equal.
インデックスベースの挿入
このコードでは、インデックス付きの中括弧 {} が文字列「{2} {1} {0}」内で使用され、対応する値が配置される位置を示します。
Python3
print> (> '{2} {1} {0}'> .> format> (> 'directions'> ,> > 'the'> ,> 'Read'> ))> |
出力
Read the directions
キーワードを割り当ててオブジェクトを挿入
このコードでは、名前付きプレースホルダー ({a}、{b}、{c}) を含む中括弧 {} が文字列 'a: {a}、b: {b}、c: {c}' 内で使用されていることを示しています。対応する名前付き引数が配置される位置。
Python3
print> (> 'a: {a}, b: {b}, c: {c}'> .> format> (a> => 1> ,> > b> => 'Two'> ,> > c> => 12.3> ))> |
出力
a: 1, b: Two, c: 12.3
挿入されたオブジェクトを再利用する
このコードでは、名前付きプレースホルダー ({p}) を含む中かっこ {} が文字列内で「最初の {p} は問題ありませんでしたが、{p} {p} は困難でした」の中で使用されており、対応する名前付きプレースホルダーの位置を示しています。引数pが置かれます。
Python3
print> (> > 'The first {p} was alright, but the {p} {p} was tough.'> .> format> (p> => 'second'> ))> |
出力
The first second was alright, but the second second was tough.
.format() メソッドによる浮動小数点精度
構文: {[インデックス]:[幅][.精度][タイプ]}
この型はフォーマット コードとともに使用できます。
- 「だ」 整数の場合
- 「ふ」 浮動小数点数の場合
- 「b」 2進数の場合
- 「お」 8 進数の場合
- 'バツ' 8進16進数の場合
- 「さん」 文字列用
- 「そうですよ」 指数形式の浮動小数点の場合
例:
どちらのコードも文字列の書式設定を行っています。最初の文字列は「%」でフォーマットされ、2 番目の文字列は .format() でフォーマットされます。
Python3
print> (> 'The valueof pi is: %1.5f'> %> 3.141592> )> print> (> 'The valueof pi is: {0:1.5f}'> .> format> (> 3.141592> ))> |
出力
The valueof pi is: 3.14159 The valueof pi is: 3.14159
注記: str.format() の詳細については、を参照してください。 Pythonのformat()関数
3. Python f-string を理解する
PEP 498 では、リテラル文字列補間、または一般的には「文字列補間」として知られる新しい文字列フォーマット メカニズムが導入されました。 F ストリング (文字列リテラルの前に先頭の f 文字があるため)。 Python の f-String の背後にある考え方は、文字列補間をより単純にすることです。
Python で f 文字列を作成するには、文字列の前に文字 f を付けます。文字列自体は、次の場合とほぼ同じ方法でフォーマットできます。 str.フォーマット() 。 F 文字列は、書式設定のために文字列リテラル内に Python 式を埋め込むための簡潔で便利な方法を提供します。
F-String を使用した文字列の書式設定
このコードでは、f 文字列 f私の名前は{名前}です。 name 変数の値を文字列に補間するために使用されます。
Python3
name> => 'Ele'> print> (f> 'My name is {name}.'> )> |
出力
My name is Ele.
この新しい書式設定構文は非常に強力かつ簡単です。任意の Python 式を挿入することもでき、その中で算術演算を実行することもできます。
F 文字列を使用した算術演算
このコードでは、f 文字列は f 彼は自分の年齢を {2 * (a + b)} だと言いました。 式 2 * (a + b) の結果を文字列に補間するために使用されます。
Python3
a> => 5> b> => 10> print> (f> 'He said his age is {2 * (a + b)}.'> )> |
出力
He said his age is 30.
私たちも使うことができます ラムダ の表現 Fストリング 書式設定。
F 文字列を使用したラムダ式
このコードでは、ラムダ x: x*2 を使用して匿名ラムダ関数が定義されています。このラムダ関数は引数 x を受け取り、その double を返します。
Python3
print> (f> 'He said his age is {(lambda x: x*2)(3)}'> )> |
出力
He said his age is 6
f-String メソッドの Float 精度
このコードでは、f-string フォーマットを使用して、num 変数の値を文字列に補間します。
Syntax : {value:{width}.{precision}} Python3
num> => 3.14159> print> (f> 'The valueof pi is: {num:{1}.{5}}'> )> |
出力
The valueof pi is: 3.1416
注記: f 文字列の詳細については、を参照してください。 Python の f 文字列
4. Python 文字列テンプレート クラス
String モジュールでは、Template クラスを使用して、出力仕様の簡略化された構文を作成できます。この形式では、有効な Python で $ で形成されたプレースホルダー名が使用されます。 識別子 (英数字とアンダースコア)。プレースホルダーを中括弧で囲むと、スペースを挟まずにさらに英数字を続けることができます。 $$ を書き込むと、エスケープされた単一の $ が作成されます。
テンプレートクラスを使用した文字列Pythonの書式設定
このコードは、文字列モジュールから Template クラスをインポートします。 Template クラスを使用すると、実際の値に置き換えることができるプレースホルダーを含むテンプレート文字列を作成できます。ここでは、文字列 n の n3 と n4 の代わりに値 n1 と n2 を代入しています。
Python3
from> string> import> Template> n1> => 'Hello'> n2> => 'techcodeview.com'> n> => Template(> '$n3 ! This is $n4.'> )> # and pass the parameters into the> # template string.> print> (n.substitute(n3> => n1, n4> => n2))> |
出力
Hello ! This is techcodeview.com.
注記: String Template クラスの詳細については、を参照してください。 Python の文字列テンプレート クラス
5. center() メソッドを使用して文字列をフォーマットする方法
center() メソッドは、Python の str クラスの組み込みメソッドで、指定された幅の文字列内で中央に配置された新しい文字列を返します。
center() メソッドを使用した文字列のフォーマット
このコードは新しい値を返します 弦 左右にスペースが埋め込まれます。
Python3
string> => 'GeeksForGeeks!'> width> => 30> centered_string> => string.center(width)> print> (centered_string)> |
出力
GeeksForGeeks!
Python フォーマット文字列: % vs.format vs f-string リテラル
F 文字列 両方より速くて優れています % フォーマット そして str.format() 。 f-string 式は実行時に評価され、非常にシンプルで簡単な構文を使用して f-string 内に式を埋め込むこともできます。
中かっこ内の式は実行時に評価され、f 文字列の文字列部分と結合されて、最終的な文字列が返されます。
注記: 文字列がユーザー指定の文字列の場合はテンプレート文字列を使用し、Python 3.6 以降を使用している場合は f-Strings を使用します。そうでない場合は、format() メソッドを使用してください。
Python で文字列をフォーマットする 5 つの方法をすべて説明しました。各メソッドには多くの使用例と例があります。また、これらの方法を比較して、実際のプロジェクトで使用するのに最も効率的な方法を見つけました。
類似の記事:
- Python での文字列の書式設定
- Python で文字列フォーマッタを使用する方法
- Python で辞書を使用して文字列をフォーマットする方法