I've made a little script to calculator percent; however, I wish to actually include the % within the message printed... Tried this at the start - didn't work... oFile.write("Percentage: %s%"\n" % percent)
I then tried "Percentage: %s"%"\n" % percent" which didn't work. I'd like the output to be: Percentage: x%
I keep getting TypeError: not all arguments converted during string formatting
asked Feb 5, 2015 at 12:16 2 To print the % sign you need to 'escape' it with another % sign: percent = 12
print "Percentage: %s %%\n" % percent # Note the double % sign
>>> Percentage: 12 %
EDIT Nowadays in python3 a better (and more readable) approach is to use f-strings. Note that other solutions (shown below) do work as well: $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%
answered Feb 5, 2015 at
12:18 El BertEl Bert 2,9081 gold
badge28 silver badges35 bronze badges 0 Or use format() function, which is more elegant. percent = 12
print "Percentage: {}%".format(percent)
4
years later edit Now In Python3x print() requires parenthesis. percent = 12
print ("Percentage: {}%".format(percent))
answered Feb 5, 2015 at 12:35 GLHFGLHF 3,71410 gold badges35 silver badges80 bronze badges The new Python 3 approach is to use format strings. percent = 12
print("Percentage: {0} %\n".format(percent))
>>> Percentage: 12 %
This is also supported in Python > 2.6. See the docs here: Python 3 and Python 2 answered
Feb 5, 2015 at 12:35 js837js837
1335 bronze badges 3 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()
Sample Output: Original Number: 0.25
Formatted Number with percentage: 25.00%
Original Number: -0.25
Formatted Number with percentage: -25.00%
Helps in proper
formatting of percentage value +++ Using ascii value of percentage - which is 37 print( '12' + str(chr(37)) )
answered Apr 28, 2020 at 11:09
Ram PrajapatiRam Prajapati 1,6031 gold badge8 silver badges8 bronze badges print("Interest Rate (APR): " , format(APR, '.0f'),'%')
Syscall 18.3k10 gold
badges33 silver badges49 bronze badges answered Mar 26, 2021 at 20:25 3
|