は、時々私は、次のような使用を参照してください。 Pythonフォーマッタの `%`と `、`の違いは何ですか?
a = "foo"
b = "bar"
print "%s, %s" %(a, b)
、時にはなどの
:print "%s, %s", (a, b)
は舞台裏で違いはありますか?
は、時々私は、次のような使用を参照してください。 Pythonフォーマッタの `%`と `、`の違いは何ですか?
a = "foo"
b = "bar"
print "%s, %s" %(a, b)
、時にはなどの
:print "%s, %s", (a, b)
は舞台裏で違いはありますか?
彼らは異なるものを印刷:
>>> print "%s, %s" %(a, b)
foo, bar
>>> print "%s, %s", (a, b)
%s, %s ('foo', 'bar')
最初のものは、文字列"%s, %s"
を使用し、フォーマットのプレースホルダに値a
とb
を挿入するために文字列フォーマット演算子%
を使用しています。その結果の文字列は、printステートメントを使用して印刷されます。
2つ目はprintステートメントに2文字を渡します。文字列"%s, %s"
とタプル(a, b)
です。これらは両方とも独立して印刷されるため、ここでは文字列の書式設定は行われません。
代わりに.format()を使用することをお勧めします。
すなわち:プリント( '{} {}' などの形式(a、b)は
は多くの問題の世話をするだけでなく、文字列、小数を気にすることない、
私は。 '{0}'を好むフォーマット(a) – rocksteady
2番目の例は最初の例と同じことをしていないので、そこに1つの明白な違いがあります。 'logging'ライブラリやデータベースへのアクセスなど何か他のものはありませんか? –
2番目のコードはPythonフォーマッタではありません。最初は文字列フォーマッタで、新しい文字列をprint関数のパラメータとして構築します。 (a、b)は関数pの第2パラメータリント – qvpham