Hi everyone,
I have as quick question. In this code
print( 'Mem. usage decreased to {:5.2f} Mb ({:.1f}% reduction)')
I get the 1 & 2 are for decimals but what the 5 is for?
Thanks
Hi everyone,
I have as quick question. In this code
print( 'Mem. usage decreased to {:5.2f} Mb ({:.1f}% reduction)')
I get the 1 & 2 are for decimals but what the 5 is for?
Thanks
The 5.2f
sets the minimum field with to 5 and the number of digits after the decimal place to 2.
So the output will be padded with spaces on the left hand side to give a total width of at least 5:
'{:5.2f}'.format(1.5) # returns ' 1.50' with a leading space
'{:5.2f}'.format(100.5) # returns '100.50'
Many thanks for your help
For ‘coding exercise’, I’m working my way through an old book I have, converting the examples therein, into Python3 code.
This script, is a good demonstration of the formatting that you asked about.
#!/usr/bin/python3
#from page 8: The C Programming Language by K&R
#:- Print a table of Fahrenheit temperatures and their centigrade or Celsius equivalents
#:- using this formula {C = (5/9)(F-32)} and a step size of 20
lower = 0
upper = 300
step = 20
fahr = lower
while fahr <= upper:
celsius = (5.0/9.0) * (fahr-32.0)
print(f"{fahr:4.0f} {celsius:6.1f}")
fahr += step
To paraphrase from said book…
{fahr:4.0f}
says that a floating point number is to be printed in a space at least four characters wide, with no digits after the decimal point. {celsius:6.1f}
describes another number to occupy at least six spaces, with one digit after the decimal point.