web-dev-qa-db-ja.com

文字列フォーマットを使用して「%」記号を印刷するにはどうすればよいですか?

電卓のパーセントに小さなスクリプトを作成しました。ただし、実際に印刷されるメッセージに「%」を含めたいと思います...

最初にこれを試しました-動作しませんでした...

oFile.write( "パーセント:%s%"\n "%パーセント)

その後、"Percentage: %s"%"\n" % percent"これは機能しませんでした。

出力を次のようにしたい:パーセンテージ:x%

「TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません」を取得し続けます

16
Eric1989

%記号を印刷するには、別の%記号で「エスケープ」する必要があります。

percent = 12
print "Percentage: %s %%\n" % percent  # Note the double % sign
>>> Percentage: 12 %
39
bvidal

または、format()関数を使用します。これはよりエレガントです。

_percent = 12
print "Percentage: {}%".format(percent)
_

4年後の編集

Python3xでは、print()には括弧が必要です。

_percent = 12
print ("Percentage: {}%".format(percent))
_
10
GLHF

新しいPython 3のアプローチは、フォーマット文字列を使用することです。

percent = 12
print("Percentage: {0} %\n".format(percent))
>>> Percentage: 12 %

これはPython> 2.6。

こちらのドキュメントをご覧ください: Python および Python 2

3
js837

format()はよりエレガントですが、モジュロ符号の方が速いようです!

http://inre.dundeemt.com/2016-01-13/string-modulo-vs-format-fight/ -モジュロが〜30%高速であることを示します!

2
Thomas Vetterli