Pythonでの文字列フォーマットのさまざまな方法:上位3つの方法
公開: 2021-02-23文字列のフォーマットは、ユーザー指定の値と位置を文字列にフォーマットまたは挿入するためのプログラミング言語の重要な機能です。 C言語には、これを行う1つの方法がありました。これは、C言語の経験があればおなじみかもしれません。 ただし、Pythonは、文字列の書式設定を行うための1つではなく、2つではなく、3つの異なる方法をサポートしています。 それぞれの方法には、このチュートリアルで説明する長所と短所があります。 また、3つの方法のどれが最も使用され効率的な方法であるかを確認します。
世界のトップ大学からオンラインデータサイエンスコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
このチュートリアルを終えると、次のことがわかります。
- 文字列フォーマットのさまざまな方法
- 例を使用した使用法
- どちらの方法が最も好ましいか
目次
文字列フォーマットのさまざまな方法
Pythonは、文字列のフォーマットを改善するために複数の更新を取得しています。 それぞれを1つずつ見ていきましょう。
方法1:Cスタイルの文字列フォーマット
Pythonには、データ型ごとに特殊文字を使用するという古い方法の文字列フォーマットが含まれています。 この古き良き文字列フォーマット方法はC言語から採用されており、依然として非常に効果的です。 文字列のフォーマットには、文字列フォーマット指定子「%」とそれに続く各データ型の専用文字が使用されます。
これを理解するために、小さな例を見てみましょう。
num = 8 名前=「ピンクマン」 print( "名前は%s、番号は%d"%(name、num)) |
#出力 >> 「名前はピンクマン、番号は8」 |
ご覧のとおり、フォーマット指定子%sは文字列名のフォーマットに使用され、%dは整数numのフォーマットに使用されました。 同様に、floatのフォーマット指定子もあります。 それもチェックしてみましょう。
num = 4.32 lis = [ 1、3、5 ] _ _ print( “ list is%s and float is%f” %(lis、num)) |
#出力 >>リストは[ 1、3、5 ]で、 floatは4.320000です_ |
上記の例では、%f形式指定子を使用してfloat値を形式化しています。 ここで注意すべき2つのこと。 1つは、float値が4.32だけでなく、4.320000として出力されることです。 なんでそうなの? これは、Pythonがデフォルトで浮動小数点数に小数点以下6桁の精度を使用するためです。 次に、文字列形式指定子を使用してリストを印刷しました。 %s形式指定子が任意のデータ型を取り込むことができるという意味ではありません。 文字列に変換して印刷するだけです。 したがって、印刷されるリストは基本的に文字列であり、リストではありません。
では、必要な小数点の精度を指定するにはどうすればよいでしょうか。
print( "リストは%sで、2ポイントの精度でfloatは%.2f"%(lis、num)) |
#出力 >>リストは[ 1、3、5 ]で、 floatは4.32です_ |
ここで注意すべきもう1つのポイントは、文字列で使用されている順序で変数を指定する必要があることです。 順序が変更されると、それに応じて出力が影響を受けるように設定されます。 毎回正しい順序で変数を指定する必要がない代わりに、わずかに異なる方法で文字列フォーマットを使用することもできます。
print(“ list is%(a)s and float is%(b)f”%{“ b”:num、“ a”:lis}) |
#出力 >>リストは[ 1、3、5 ]で、 floatは4.320000です_ |
ご覧のとおり、これを書くのは非常に面倒です。
要約すると、最も頻繁に使用される3つのフォーマット指定子は次のとおりです。
- 文字列の%s
- 整数の場合は%d
- %。<10進精度>fフロートの場合
方法2:新しいスタイルの文字列フォーマット
Python 3では、文字列に対してformat()メソッドを使用して、文字列の書式設定を行うためのより良い方法が導入されました。 プレースホルダーは中括弧を配置することで使用され、formatメソッドには、文字列内のそれらの位置に配置する必要のある変数が含まれています。 これを理解するための小さな例を見てみましょう。
名前=「スカイラー」 print(“こんにちは、私の名前は{}”。format(name)) |
#出力 >>こんにちは、私の名前はスカイラーです |
これは、上記で見た古いスタイルのフォーマットよりもはるかに優れています。 中括弧は、文字列を含む変数名のプレースホルダーとして機能します。 formatメソッドでは、古いスタイルのフォーマットで行ったように、変数のデータ型を指定する必要がないことに注意してください。
数字の例:
num = 3 int = 4.34 名前= 「ジェシー」 print( “こんにちは、私の名前は{}、数値は{}、floatは{}” .format(name、num、int)) |
#出力 >>こんにちは、私の名前はjessy、番号は3 、 floatは4.34です。 |
きちんとした! ご覧のとおり、文字列で使用された順序で変数をformatメソッドに渡す必要があります。 すべての変数を正しい順序で渡す必要がないため、formatメソッドを使用する別の方法:
print( "こんにちは、私の名前は{name}、数値は{num}、floatは{int}"。format(int = int、num = num、name = name)) |
#出力 >>こんにちは、私の名前はjessy、番号は3 、 floatは4.34です。 |
上記の例では、変数がプレースホルダーで明示的に言及されている場合、正しい順序でformatメソッドに変数を渡す必要がなくなったことがわかります。
プレースホルダー内の変数の位置を渡して、それらをより適切に追跡することもできます。
print( "こんにちは、私の名前は{0}、番号は{1}、floatは{2}"。format(name、num、int)) |
#出力 >>こんにちは、私の名前はjessy、番号は3 、 floatは4.34です。 |
方法3:F文字列を使用する
Python 3.6で導入されたf-stringsは、文字列の書式設定を行うための最も簡単で効率的な方法です。 これらは、フォーマットされた文字列リテラルとも呼ばれます。 文字列の先頭にあるリテラルfを使用して、Pythonにフォーマットされた文字列として扱うように指示します。 プレースホルダーには、その位置に配置する必要のある実際の変数が含まれています。
例を見てみましょう。
名前=「heisenberg」 bill = 100.43print(f”名前は{name}で、請求書は{bill}”) |
#出力 >>名前はハイゼンベルグ、請求書は100.43です |
これはとても簡単でした。 さらに、変数の代わりに式を直接配置することもできます。
a = 5 b = 8 print( f”合計は{a + b} “ ) |
#出力 >>合計は13です |
関数を直接呼び出して、文字列リテラルで出力を取得することもできます。
print( f”名前は{name.upper()} “ ) |
#出力 >>名前はHEISENBERGです |
さらに、f文字列を使用して、関数から値を直接返すこともできます。
defcombiner(名前、年齢、お金): return f” {name}は{age}歳で、給与は{money}”です。 |
ソウル・グッドマンは45歳で、給与は2000000です。 |
ご覧のとおり、関数をプレースホルダーに直接渡すと、関数が呼び出され、出力が中括弧に直接配置されます。 明らかに、この文字列フォーマットの方法は最も効率的で、簡単に書くことができます。
チェックアウト: Pythonインタビューの質問と回答
行く前に
文字列のフォーマットは通常のタスクであり、Pythonがformatメソッドとf文字列を導入した方法により、Pythonを使用するユーザーにとって非常に簡単になります。 f-stringsは、記述と保守が非常に簡単になるため、文字列フォーマットを操作するための最も使用され、推奨される方法です。 さらに、コードをよりPythonicにします! 内部的には、f文字列は__format__プロトコルを使用します。 fリテラルは、Pythonがユーザーに提供する単なる構文糖衣であり、文字列の書式設定を簡単に記述できるようにします。
データサイエンスについて知りたい場合は、IIIT-B&upGradのデータサイエンスのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。1業界のメンターとの1対1、400時間以上の学習、トップ企業との仕事の支援。
1. Pythonの組み込み文字列format()メソッドは、提供された文字列をより有用な出力に変換します。 Python3のformat()関数は、値の書式設定だけでなく、複数の置換を可能にする文字列書式設定メソッドの1つです。 format()メソッドは、位置フォーマットを使用して、文字列内のアイテムを連結します。 Python 3のprintメソッドに引数を追加して、次の文字列を新しい行に配置したくないことをコンピューターに通知します。 次のシナリオを考えてみましょう。 1.端末を介したユーザー入力とファイルからの読み取りによってfloat値を取得する場合、これらは文字列オブジェクトです。 その結果、加算や乗算などの必要な操作を実行するために、それらを明示的にfloatに変換する必要があります。Python 3のどのフォーマットメソッドで複数の置換と値のフォーマットが可能ですか?
2.文字列は、中括弧の多数のペアを使用してフォーマットできます。 長い文字列で別の変数の置換が必要な場合は、中括弧の2番目のセットを追加して、2番目の値をプロシージャに渡すことができます。
3. Pythonのformat()関数は、任意の数のパラメーターを受け入れます。 ただし、主に次の2種類のパラメータに分けられます。
a。 位置パラメーターは、パラメーターの索引を中括弧(索引)の中に入れることによって取得できるパラメーターのリストです。
b。 キーワードパラメータ–これは、中括弧内のパラメータのキーを使用してアクセスできるkey=valueパラメータのリストです。
4. format()メソッドは、フォーマットされた文字列を返します。 format()関数は、提供された引数のタイプを読み取り、文字列内のフォーマットコードに従ってそれらをフォーマットします。 Python 3で改行なしでどのように印刷しますか?
print('ようこそ!'、end =')
この場合、それ以降の印刷機能は同じ行に表示されます。 Pythonで文字列をfloatに変換できますか?
2. Pythonのfloat()メソッドを使用して、文字列をfloatに変換できます。 これは、浮動小数点数をオブジェクトに変換するための組み込み関数です。 内部的には、float()関数は、提供されたオブジェクトの__float __()関数を呼び出します。