1

変数を直接呼び出す代わりに %s を使用する理由を考えていました。ex:

playername = "george" 

print "my name is %s" % playername
print "my name is", playername

変数を直接呼び出すのは少し短く、どちらも同じ結果を出力するので、% の使用を忘れると、まだ学んでいない何かが戻ってくるのでしょうか?

4

4 に答える 4

6

あなたが両方を行うことが許されていると述べた場合、個人的な好みから離れない理由はありません.

ただし、現在の python 標準では、実際に行う必要があると規定されています。

print("my name is {}".format(playername))

または、以前の両方の方法のエラーが発生しやすい性質のため、同様です。スペースを逃したり、タイプを間違って定義したりする可能性があります。

これは、いくつかの適切な合理的および例を含む関連する PEPです。

于 2013-09-10T23:08:24.653 に答える
2

このコンテキストでは、2 つの方法は本質的に同じです。私も 2 番目の方法でそれを行います :-) しかし、手の込んだ書式設定構造は、手の込んだコンテキストでは間違いなく役立ちます。読みやすい方法で行ってください。最近の Python には、次のものもあります。

print "my name is {}".format(playername)

この方法は、「%」形式よりも柔軟性が高く、エラーが発生しにくくなります。すべての良い時間で ;-)

于 2013-09-10T23:09:00.703 に答える
1

この特定のケースの最大の理由は"my name is %s" % playername、操作、戻り、またはその他の方法で処理できる文字列が得られることです。に置き換えprintreturn、変更せずに機能させることができます。

まったく大きな違いではありませんが、出力をそのように構築したい場合がある理由です。

于 2013-09-10T23:10:24.517 に答える
0

%s 置換を使用する方が実際には効率的であるとどこかで読みましたが、それが本当かどうかはわかりません。

その習慣を身につける理由の 1 つは、playername が何らかのクラスのオブジェクトに変更された場合、最初の行は引き続き機能し (そのクラスが を実装していると仮定__str__())、2 番目の行は期待どおりにならないからです。

于 2013-09-10T23:05:05.240 に答える