Complete Exercise 3 in Chapter 16 of Think Python