ホームページ >バックエンド開発 >Python チュートリアル >str.format() の基本構文と高度な使用法の詳細な説明

str.format() の基本構文と高度な使用法の詳細な説明

Y2J
Y2Jオリジナル
2017-05-15 10:48:434574ブラウズ

この記事では、Python プログラミングにおける str.format() の基本的な構文と高度な使用法を主に紹介します。非常に詳しく書かれており、気に入っていただけると幸いです

1。

Python では、+ を使用して

strings を連結できます。これは単純な場合にうまく機能します。しかし、複雑な 文字列連結 を実行する必要がある場合、まだ + を使用して完成させると、コードがわかりにくくなるだけでなく、コードの保守も困難になります。不十分。

たとえば、次のようなレコードを印刷したいとします:

User:John has completed

Action:payment at Time:13:30:00

プラス記号を使用すると、次の形式:

print "User:" + user_name + " has completed Action:" + \ 
      action_name + " at Time:" + current_time

将来このコードに戻って読む場合、その出力形式を直観的に確認するのは難しく、それを変更するのは比較的面倒になるでしょう。

代わりに % を使用できます:

print "User:%s has completed Action:%s at Time:%s" % \ 
    (user_name, action_name, current_time)

今回は、コードがより明確かつ簡潔になります。

ただし、Python は、別のシンプルで洗練された実装方法を提供します。これは、より公式に推奨されている方法でもあります: str.format() を使用して文字列をフォーマットします:

print "User:{} has completed Action:{} at Time:{}".format( 
    user_name, action_name, current_time)

str.format は、単純なシナリオに使用できます。面倒な文字列連結操作を必要とせずに、複雑な文字列を置換できます。 Python の組み込み型 str と unicode はどちらも、

文字列のフォーマットを行う str.format() の使用をサポートしています。

次に、str.format() の具体的な使用法について詳しく説明します。

2. str.format の基本構文

フォーマットされた文字列は、置換される文字列である置換フィールドを中括弧 {} で囲みます。中括弧で囲まれていない文字は、結果にそのまま表示されます。

2.1. 位置

index の使用

次の 2 つの書き方は同等です:

"Hello, {} and {}!".format("John", "Mary")

"Hello, {0 } と {1}!".format("John", "Mary")


対象文字列のインデックスは中括弧内に記述しても省略できます。省略した場合は、書式括弧で囲まれた対象文字列の順に置換されます。

2.2. キーワードインデックスの使用

位置を介してターゲット文字列を指定することに加えて、キーワードを介して指定することもできます。

例:

"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")

キーワードインデックスを使用する利点は、パラメータの位置を気にする必要がなく、文字列の最終結果が一目でわかることです。将来のコードのメンテナンスでは、文字列に対して対応するパラメーターを 1 つずつ検索する必要がなく、対応するパラメーターをすばやく変更できます。

注: 文字列自体に中括弧が含まれている場合は、中括弧を 2 回繰り返してエスケープする必要があります。たとえば、文字列自体に { が含まれている場合、これが置換フィールドを囲むために使用される中括弧ではなく通常の文字であることを Python に知らせるために、単に {{ に書き換えます。

3. str.format の高度な構文

str.format は、日常業務で発生する

フォーマットされた出力を完了するのに十分強力です。この方法に習熟すると、将来の文字列処理のための強固な基盤を築き、時間を大幅に節約できます。

3.1.

プロパティまたはパラメータの要素へのアクセス

str.format を使用して文字列をフォーマットする場合、通常はターゲット文字列をパラメータとして format メソッドに渡します。実際、フォーマット文字列内のパラメータの属性または要素にアクセスすることもできます。

"My car is {0.color}.".format(black_car)

"The first students is {student[ 0]} .".format(student=stu_
list)"John is {d[john]} years old.".format(d=age_dict)

3.2. パラメータ出力変換

パラメータ文字列出力は、そのパラメータによって実装されます。デフォルトでは独自の形式メソッド。つまり、Python は置換フィールドの代わりにパラメーターの形式出力を使用します。 str() または repr() を呼び出してパラメータを変換したい場合は、変換フラグを追加することで実行できます:

# call str() on argument
"It's a {0!s}."

#call repr() on argument
"We can get info from {name!r}."

4. str.format の一般形式

フォーマットされた文字列の一般形式は次のとおりです。

" ... {field_name!conversion:format_spec} ..."


上記のコードからわかるように、フォーマット文字列は、field_name、conversion、format_spec の 3 つの部分に分割でき、それぞれが対応します。それぞれ、置換フィールド名 (インデックス) と変換のフラグ、形式の説明に対応します。このうち、フィールド名は必須ですが、後の 2 つはオプションです。変換フラグは感嘆符の後に続き、形式の説明はコロンの後に続きます。

前述したように、フィールド名は位置インデックスまたはキーワード インデックスのいずれかになります。フィールド名の後にドットを続けて属性にアクセスしたり、角括弧を続けて要素にアクセスしたりできます。

ここでは、形式の説明 (format_spec) に焦点を当てます。

形式の説明には、fill、align、sign、width、precision、type の 6 つのオプションが含まれています。 それらの位置関係は次のとおりです:

[[fill]align][sign][#][0][width][,][.precision][type]
fill
は任意の文字にすることができ、デフォルトは空間。

align
最小幅が指定されている場合にのみ有効です。

5f3b293385e952b789e5f7c700aff663 右揃え
= 記号と数字の間に埋め込み文字を挿入します (例: +0001234)。 中央揃え
記号
数字のみに有効

+ すべての数字すべて符号付きです

- 負の数値のみが符号付きです (デフォルト オプション)
つまり、正の数値の前にはスペースがあり、負の数値の前には符号が付きます
'#'
整数のみに有効です
バイナリで自動的に変換されます、 8 進数、10 進数 16 進値の前に、対応する 0b、0o、および 0x を追加します。

','

3 つの数字ごとに , 区切り文字を自動的に追加します。


width

最小幅を定義する 10 進数。指定しない場合は、コンテンツの幅によって決まります。


配置が指定されていない場合は、width の前に 0 を追加して自動的に 0 を埋めることができます。これは、fill を 0 に設定し、align を = に設定するのと同じです。

精度

浮動小数点数の精度、または文字列の最大長を決定するために使用されます。整数値には使用できません。


type

パラメータのタイプを決定します。デフォルトは文字列である s です。


整数出力タイプ:

b: バイナリ形式で出力

c: 整数を対応する Unicode 文字に変換

d: 10 進数で出力 (デフォルト オプション)
o: 8 進数で出力
x: 16 進数の小文字で出力
メソッド出力、指数部を表すために e を使用します。デフォルトの精度は 6
E: e と同じですが、指数部を表すために大文字の E を使用します
f: 値を固定小数点形式で出力します。デフォルトの精度は 6
F: f
g : 一般形式と同じ。指定された精度 p >= 1 の場合、値の p 桁の有効桁を取得し、固定小数点または科学的表記法で出力します (デフォルト オプション)

G: 一般形式。 g と同じ、値が大きすぎる場合は、指数部を表すために E を使用します

n: g と同じですが、各 3 桁の数値を区切るために現在の環境の区切り文字を使用します

%: パーセント形式を使用します。値を出力し、f マークを設定します


【関連する推奨事項】

特に推奨する

:
「php Programmer Toolbox」V0.1 バージョンのダウンロード

2. Python の無料ビデオチュートリアル

3. Python オブジェクト指向のビデオチュートリアル

以上がstr.format() の基本構文と高度な使用法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。