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'添字別
>>> 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これらの便利な「マッピング」メソッドを使用すると、遅延ツールが得られます。 Python の基本的な知識から、リストとタプルは関数の通常のパラメーターに「分割」できるのに対し、dict は関数のキーワード パラメーター (through と *) に分割できることがわかります。したがって、リスト/タプル/辞書を format 関数に簡単に渡すことができ、非常に柔軟です。
フォーマット修飾子
それらはそれぞれ中央揃え、左揃え、右揃えであり、その後に幅が続きます
: 記号の後のパディング文字は 1 文字のみです。指定しない場合、デフォルトではスペースで埋められます
。コード例:
>>> '{0[1]}.{0[0]}.{1}'.format(['pyhtontab', 'www'], 'com') 'www.pyhtontab.com'数値の精度と型 f精度は、多くの場合、型 f
>>> '{:>10}'.format(2016) ' 2016' >>> '{:#>10}'.format(2016) '######2016' >>> '{:0>10}'.format(2016) '0000002016'と一緒に使用されます。ここで、2 は長さ 2 の精度を表し、f は float 型を表します。 他の型は主に基数に基づいており、b、d、o、x はそれぞれ 2 進数、10 進数、8 進数、16 進数です。
>>> '{:.2f}'.format(2016.0721) '2016.07'数値は金額の千の区切り文字としても使用できます。
>>> '{:b}'.format(2016) '11111100000' >>> '{:d}'.format(2016) '2016' >>> '{:o}'.format(2016) '3740' >>> '{:x}'.format(2016) '7e0' >>>フォーマットの機能が強力すぎるので、たくさんの機能を試すことができます。