Python の強力な文字列フォーマット関数-format

大家讲道理
リリース: 2016-11-07 10:50:03
オリジナル
1460 人が閲覧しました

python2.6 以降、文字列をフォーマットするための新しい関数 str.format() が追加されました。これは非常に強力です。では、以前の % 形式の文字列と比較して、どのような利点があるのでしょうか?その恥じらいを暴いてみましょう。

構文

それは、%

位置メソッドの書式設定

>>> '{}.{}'.format('pythontab', 'com')
'pythontab.com'
>>> '{}.{}.{}'.format('www', 'pythontab', 'com')
'www.pythontab.com'
>>> '{1}.{2}'.format('www', 'pythontab', 'com')
'pythontab.com'
>>> '{1}.{2} | {0}.{1}.{2}'.format('www', 'pythontab', 'com')
'pythontab.com | www.pythontab.com'
ログイン後にコピー

の代わりに、{} を使用します

>>> '{domain}, {year}'.format(domain='www.pythontab.com', year=2016)
'www.pythontab.com, 2016'
>>> '{domain} ### {year}'.format(domain='www.pythontab.com', year=2016)
'www.pythontab.com ### 2016'
>>> '{domain} ### {year}'.format(year=2016,domain='www.pythontab.com')
'www.pythontab.com ### 2016'
ログイン後にコピー

文字列の書式関数は、無制限のパラメータを受け入れることができ、パラメータの位置は順不同であり、パラメータは省略できますまたは複数回使用され、非常に柔軟です

注: python2.6 では空の {} にすることはできませんが、python2.7 以降では使用できます。

キーワードパラメータ別

>>> class website: 
        def __init__(self,name,type): 
            self.name,self.type = name,type 
        def __str__(self): 
          return 'Website name: {self.name}, Website type: {self.type} '.format(self=self) 
>>> print str(website('pythontab.com', 'python'))
Website name: pythontab.com, Website type: python
>>> print website('pythontab.com', 'python')
Website name: pythontab.com, Website type: python
ログイン後にコピー

オブジェクトプロパティ別

>>> '{0[1]}.{0[0]}.{1}'.format(['pyhtontab', 'www'], 'com')
'www.pyhtontab.com'
ログイン後にコピー

添字別

>>> '{:>10}'.format(2016)
'      2016'
>>> '{:#>10}'.format(2016)
'######2016'
>>> '{:0>10}'.format(2016)
'0000002016'
ログイン後にコピー
これらの便利な「マッピング」メソッドを使用すると、遅延ツールが得られます。 Python の基本的な知識によれば、リストとタプルは関数の通常のパラメータに「分割」できるのに対し、dict は関数のキーワード パラメータ (through と *) に分割できることがわかります。したがって、リスト/タプル/辞書を format 関数に簡単に渡すことができ、非常に柔軟です。

フォーマット修飾子

次のような豊富な「フォーマット修飾子」(構文は、記号が入った {} です)があります。

パディングとアライメント

<、> パディングは、アライメントと一緒によく使用されます

^ 、

はそれぞれ中央揃え、左揃え、右揃えで、その後に幅が続きます

: 記号の後のパディング文字は 1 文字のみです。指定しない場合は、デフォルトでスペースで埋められます。

コード例:

>>> &#39;{:.2f}&#39;.format(2016.0721)
&#39;2016.07&#39;
ログイン後にコピー

数値精度 精度は f 型と一緒によく使用されます

精度は f

>>> &#39;{:b}&#39;.format(2016)
&#39;11111100000&#39;
>>> &#39;{:d}&#39;.format(2016)
&#39;2016&#39;
>>> &#39;{:o}&#39;.format(2016)
&#39;3740&#39;
>>> &#39;{:x}&#39;.format(2016)
&#39;7e0&#39;
>>>
ログイン後にコピー
型と一緒によく使用されます。ここで、.2 は長さ 2 の精度を表し、f は float 型を表します。

他の型

は主に基数に基づいており、b、d、o、x はそれぞれ 2 進数、10 進数、8 進数、16 進数です。

>>> &#39;{:,}&#39;.format(20160721)
&#39;20,160,721&#39;
ログイン後にコピー
数字を使用すると、金額の千単位の区切り文字としても使用できます。 🎜rrreee🎜形式は非常に強力で、多くの機能を試してみることができます。 🎜
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート