如何使用字符串格式打印“%”符号?
How do I print a '%' sign using string formatting?
我制作了一个计算百分比的小脚本;但是,我希望在打印的消息中实际包含 %
...
一开始就试过了 - 没用...
oFile.write("Percentage: %s%"\n" % percent)
然后我尝试了 "Percentage: %s"%"\n" % percent"
但没有用。
我希望输出为:
Percentage: x%
我不断得到
TypeError: not all arguments converted during string formatting
要打印 %
标志,您需要 'escape' 它与另一个 %
标志:
percent = 12
print "Percentage: %s %%\n" % percent # Note the double % sign
>>> Percentage: 12 %
编辑
现在 python3 更好(也更易读)的方法是使用 f-strings。请注意,其他解决方案(如下所示)也有效:
$python3
>>> percent = 12
>>> print(f'Percentage: {percent}%') # f-string
Percentage: 12%
>>> print('Percentage: {0}%'.format(percent)) # str format method
Percentage: 12%
>>> print('Percentage: %s%%' % percent) # older format, we 'escape' the '%' character
Percentage: 12%
或者使用format()
函数,更优雅
percent = 12
print "Percentage: {}%".format(percent)
4年后编辑
现在在 Python3x 中 print()
需要括号。
percent = 12
print ("Percentage: {}%".format(percent))
新的 Python 3 方法是使用格式字符串。
percent = 12
print("Percentage: {0} %\n".format(percent))
>>> Percentage: 12 %
这在 Python > 2.6 中也受支持。
format()
更优雅,但模数符号似乎更快!
http://inre.dundeemt.com/2016-01-13/string-modulo-vs-format-fight/ - 表明取模快了约 30%!
x = 0.25
y = -0.25
print("\nOriginal Number: ", x)
print("Formatted Number with percentage: "+"{:.2%}".format(x));
print("Original Number: ", y)
print("Formatted Number with percentage: "+"{:.2%}".format(y));
print()
示例输出:
Original Number: 0.25
Formatted Number with percentage: 25.00%
Original Number: -0.25
Formatted Number with percentage: -25.00%
有助于正确格式化百分比值
+++
使用百分比的 ascii 值 - 即 37
print( '12' + str(chr(37)) )
print("Interest Rate (APR): " , format(APR, '.0f'),'%')
我制作了一个计算百分比的小脚本;但是,我希望在打印的消息中实际包含 %
...
一开始就试过了 - 没用...
oFile.write("Percentage: %s%"\n" % percent)
然后我尝试了 "Percentage: %s"%"\n" % percent"
但没有用。
我希望输出为:
Percentage: x%
我不断得到
TypeError: not all arguments converted during string formatting
要打印 %
标志,您需要 'escape' 它与另一个 %
标志:
percent = 12
print "Percentage: %s %%\n" % percent # Note the double % sign
>>> Percentage: 12 %
编辑
现在 python3 更好(也更易读)的方法是使用 f-strings。请注意,其他解决方案(如下所示)也有效:
$python3
>>> percent = 12
>>> print(f'Percentage: {percent}%') # f-string
Percentage: 12%
>>> print('Percentage: {0}%'.format(percent)) # str format method
Percentage: 12%
>>> print('Percentage: %s%%' % percent) # older format, we 'escape' the '%' character
Percentage: 12%
或者使用format()
函数,更优雅
percent = 12
print "Percentage: {}%".format(percent)
4年后编辑
现在在 Python3x 中 print()
需要括号。
percent = 12
print ("Percentage: {}%".format(percent))
新的 Python 3 方法是使用格式字符串。
percent = 12
print("Percentage: {0} %\n".format(percent))
>>> Percentage: 12 %
这在 Python > 2.6 中也受支持。
format()
更优雅,但模数符号似乎更快!
http://inre.dundeemt.com/2016-01-13/string-modulo-vs-format-fight/ - 表明取模快了约 30%!
x = 0.25
y = -0.25
print("\nOriginal Number: ", x)
print("Formatted Number with percentage: "+"{:.2%}".format(x));
print("Original Number: ", y)
print("Formatted Number with percentage: "+"{:.2%}".format(y));
print()
示例输出:
Original Number: 0.25
Formatted Number with percentage: 25.00%
Original Number: -0.25
Formatted Number with percentage: -25.00%
有助于正确格式化百分比值
+++
使用百分比的 ascii 值 - 即 37
print( '12' + str(chr(37)) )
print("Interest Rate (APR): " , format(APR, '.0f'),'%')