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'
```

1 Like

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.

1 Like