ホームページ  >  記事  >  バックエンド開発  >  文字列のフォーマット % とフォーマットのどちらが優れていますか?

文字列のフォーマット % とフォーマットのどちらが優れていますか?

anonymity
anonymityオリジナル
2019-05-25 11:28:362345ブラウズ

Python で文字列をフォーマットするには、パーセント記号メソッドとフォーマット メソッドの 2 つの方法があります。

パーセント記号メソッドは比較的古いものですが、フォーマット メソッドはより高度なメソッドであり、古い方法を置き換えることを目的としています。 、現在は両方が共存しています。

文字列のフォーマット % とフォーマットのどちらが優れていますか?

パーセント モード

%[(name)][flags][width].[precision]typecode

(name) オプション、指定されたキーの選択に使用されます

フラグはオプション、選択できる値は次のとおりです:

# 右; 正の数の前に正の数を追加し、負の数の前に負の数を追加します; 負の符号を追加します;

スペースを右揃えにします; 正の数値の前にスペースを追加し、負の数値の前にマイナス記号を追加します。

0 右揃え; 正の数値の前に符号なし、負の数値の前にマイナス記号を追加します。0 を使用します。空白スペースを埋めます

width オプション、幅を占有します。

.precision オプション、小数点以下の桁数

typecode Required

s、Pass を取得します。オブジェクトの __str__ メソッドの戻り値を取得し、指定された場所にフォーマットします

##r、受信オブジェクトの __repr__ メソッドの戻り値を取得して、指定された場所にフォーマットします

c 、整数: 数値を Unicode に対応する値に変換し、10 進数の範囲は 0 o に文字を追加します。整数を 8 進数表現に変換し、指定された位置

#xx にフォーマットします。整数を 16 進数表現に変換し、次のようにフォーマットします。位置

d を指定します。整数と浮動小数点を変換します。数値を 10 進表現に変換し、指定した位置にフォーマットします

e、整数と浮動小数点数を科学表記に変換し、フォーマットします 指定した位置 (小文字の e) にフォーマットします

E 、整数と浮動小数点数を科学的表記法に変換し、指定された位置 (大文字の E) にフォーマットします。

f、整数を変換し、浮動小数点数を浮動小数点数に変換し、それらを次のようにフォーマットします。指定された位置 (デフォルトでは小数点以下 6 桁を保持します)

F、上記と同様

g、整数と浮動小数点数を浮動小数点または科学的表記法に変換するように自動的に調整されます (科学的表記法を使用します) 6 桁を超える表記法)、指定された位置に書式設定します (科学的記法の場合;)

G、整数を自動的に調整し、浮動小数点数を浮動小数点または科学的記数法に変換します (詳細6 桁以上は科学的記数法を使用します)、指定された位置に書式設定します (科学的記法の場合は E;)

%、文字列に書式設定フラグがある場合は、% を使用する必要があります。 % はパーセント記号を表します

注: Python のパーセント記号形式で整数をバイナリ表現に自動的に変換する方法はありません

tpl = "i am %s" % "alex"
tpl = "i am %s age %d" % ("alex", 18)
tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}
tpl = "percent %.2f" % 99.97623
tpl = "i am %(pp).2f" % {"pp": 123.425556, }
tpl = "i am %.2f %%" % {"pp": 123.425556, }

Format メソッド

[[fill]align][sign][#][0][width][,][.precision][type]

fill 94af9f3d371cb2e273507308afe78743、コンテンツは右揃えです (デフォルト)

=、コンテンツは右揃えです、記号はパディング文字の左側に配置され、数字のみが有効です。タイプは有効です。シンボルフィラー番号

^ の場合でも、コンテンツは中央に配置されます

sign [オプション] 符号なしの数値

と、正の符号と負の符号があり、負符号と負符号;

-、正符号は変更されず、負符号が負符号に追加されます;

スペース、正符号はスペース、負符号はに追加されます負の値;

# 16 進数、# を追加すると 0b/0o/0x が表示され、それ以外の場合は

は表示されません。[オプション] 数値の区切り文字を追加します。 : 1,000,000

width [オプション] ]フォーマットビットが占める幅

.precision [オプション] 10進数保持精度

type [オプション] フォーマットタイプ

Input "string type" パラメータ

s、フォーマット文字列型データ

空白、型が指定されていない場合、デフォルトはNoneで、s

Passと同じです。 「整数型」パラメータ

b で、10 進整数をバイナリ表現に自動的に変換してフォーマットします。

##c、10 進整数を対応する Unicode 文字

## に自動的に変換します。 #d 、10 進整数

o、10 進整数を 8 進表現に自動的に変換してフォーマットします;

xx、10 進整数を 16 進表現に自動的に変換してフォーマットします (小文字の x)

#XX、10 進整数を 16 進表現に自動的に変換し、それをフォーマットします (X 大文字)

「浮動小数点または 10 進数型」のパラメーターを渡します

e,科学的記数法 (小文字の e) に変換してから format;

E、科学的記数法 (大文字の E) に変換してから format;

f、浮動小数点型に変換 (デフォルトは 6)小数点以下の桁数)、書式設定;

F、浮動小数点型 (デフォルトの小数点以下 6 桁) に変換して書式設定;

g、e と f# を自動的に切り替える

##G、E と F

% を自動的に切り替え、パーセンテージを表示します (デフォルトの表示は小数点以下 6 桁です)

tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')
tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])
tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
tpl = "i am {:s}, age {:d}".format(*["seven", 18])
tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)
tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

以上が文字列のフォーマット % とフォーマットのどちらが優れていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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