Chapter 7. Advanced Python

7.0. Introduction

In this chapter, we will explore some of the more advanced concepts in the Python language—in particular, object-oriented Python, reading and writing files, handling exceptions, using modules, and Internet programming.

7.1. Formatting Numbers

Problem

You want to format numbers to a certain number of decimal places.

Solution

Apply a format string to the number. For example:

>>> x = 1.2345678
>>> "x={:.2f}".format(x)
'x=1.23'
>>>

Discussion

The formatting string can contain a mixture of regular text and markers delimited by { and }. The parameters to the format function (there can be as many as you like) will be substituted in place of the marker, according to the format specifier.

In the preceding example, the format specifier is :.2f, which means that the number will be specified with two digits after the decimal place and is a float f.

If you wanted the number to be formatted so the total length of the number is always seven digits (or padding spaces), then you would add another number before the decimal place like this:

>>> "x={:7.2f}".format(x)
'x=   1.23'
>>>

In this case, since the number is only three digits long, there are four spaces of padding before the 1.

A more complicated example might be to display the temperature in both degrees Celsius and degrees Fahrenheit, as shown here:

>>> c = 20.5
>>> "Temperature {:5.2f} deg C, {:5.2f} deg F.".format(c, c * 9 / 5 + 32)
'Temperature 20.50 deg C, 68.90 deg F.'
>>>

Get Raspberry Pi Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.