# Chapter 5

# Basic Data Types

### If you lose the spirit of repetition, your practice will become quite difficult

—Shunryu Suzuki,

*Zen Mind, Beginner’s Mind*
## Figures

## Example Programs

There is one example program for chapter 5: download chapter5.zip.

To determine your floating-point hardware’s performance on Windows machines,
download machar.zip. (The archive contains the source file in C.)

Download a program to print out pi (courtesy of Jaap Spies, j.spies@hccnet.nl),
pipoem.zip.
There are lots of others floating around, but this one is particularly nice.

## Exercises

Find out how to measure the speed of light yourself using chocolate and a microwave oven
http://www.ph.unimelb.edu.au/~mbailes/P140/lecture22/index.htm.

Read what Duncan Steel has to say about the use of Julian Calendar
years in astronomical measurement at steel.html. Buy his book:

Visit Simon Cassidy’s Web site at
http://www.hermetic.ch/cal_stud/cassidy/.

For some introductory material on imaginary, complex, rational and irrational
numbers, see http://www.math.toronto.edu/mathnet/answers/imaginary.html,
and related topics on the same site.

For more advanced material on complex numbers, read Paul J. Nahin’s
delightful book, *An Imaginary Tale*.

For a discussion of Mayan calendrical math, see http://www.foretec.com/python/workshops/1998-11/proceedings.html,
which, among other things, discusses negative numbers and the Mayans’ view
of them.

For a discussion of positional number systems, such as the base 32768
system used to implement Python’s long integers, take a look at
Donald Knuth’s *The Art of Computer Programming*, Volume 2, *Seminumerical Algorithms*.

In an earlier chapter, I described a number of floating-point “gotchas,”
things you need to watch out for, especially when dividing floating-point
numbers. It would
probably be useful to review the gotchas; see Hour 3, “Basic Arithmetic
with Python.”