Doing Math with Python

Doing Math with Python
Use Programming to Explore Algebra, Statistics, Calculus, and More!
Amit Saha
August 2015, 264 pp.

“Saha does an excellent job providing a clear link between Python and upper-level math concepts, and demonstrates how Python can be transformed into a mathematical stage. This book deserves a spot on every geometry teacher’s bookshelf.”
School Library Journal

Doing Math with Python shows you how to use Python to delve into high school–level math topics like statistics, geometry, probability, and calculus. You’ll start with simple projects, like a factoring program and a quadratic-equation solver, and then create more complex projects once you’ve gotten the hang of things.

Along the way, you’ll discover new ways to explore math and gain valuable programming skills that you’ll use throughout your study of math and computer science. Learn how to:

  • Describe your data with statistics, and visualize it with line graphs, bar charts, and scatter plots
  • Explore set theory and probability with programs for coin flips, dicing, and other games of chance
  • Solve algebra problems using Python’s symbolic math functions
  • Draw geometric shapes and explore fractals like the Barnsley fern, the Sierpinski triangle, and the Mandelbrot set
  • Write programs to find derivatives and integrate functions

Creative coding challenges and applied examples help you see how you can put your new math and coding skills into practice. You’ll write an inequality solver, plot gravity’s effect on how far a bullet will travel, shuffle a deck of cards, estimate the area of a circle by throwing 100,000 “darts” at a board, explore the relationship between the Fibonacci sequence and the golden ratio, and more.

Whether you’re interested in math but have yet to dip into programming or you’re a teacher looking to bring programming into the classroom, you’ll find that Python makes programming easy and practical. Let Python handle the grunt work while you focus on the math.

Uses Python 3

Author Bio 

Amit Saha is a software engineer who has worked for Red Hat and Sun Microsystems. He created and maintains Fedora Scientific, a Linux distribution for scientific and educational users. He is also the author of Write Your First Program (Prentice Hall Learning).

Table of contents 


Chapter 1: Working with Numbers
Chapter 2: Visualizing Data with Graphs
Chapter 3: Describing Data with Statistics
Chapter 4: Algebra and Symbolic Math with SymPy
Chapter 5: Playing with Sets and Probability
Chapter 6: Drawing Geometric Shapes and Fractals
Chapter 7: Solving Calculus Problems


Appendix A: Software Installation
Appendix B: Overview of Python Topics

View the detailed Table of Contents (PDF)
View the Index (PDF)


Amit Saha was interviewed by Mouse vs. Python as the PyDev of the Week!

"This is a great book — the level of the material is carefully judged throughout, the mathematics and the computing complement and motivate each other, and the exercises are superb."
Dr. Ian Hawke, University of Southampton

"Will show you how to reliably express mathematical ideas and operations in Python code...the grounding this gives you will make your Python code more effective, reliable and meaningful."
Network Security Newsletter

"A good new resource for budding data scientists...contains all the important first ingredients that a newbie data scientist needs to get started in the field."

"Doing Math with Python helps students learn how to do math with the help of a little programming. It’s like learning two subjects at once."

"Doing Math with Python is an amazing book. I wish I could have encountered this book earlier in my own education as a way to better solidify the math I was learning. I'm working on incorporating aspects into my regular classroom because I and my MESA students have been enjoying it so much. If you are even considering getting this book, you should. And if you aren't considering it I think you should change your mind."
Neal Whitlock, high school teacher

"Great for gaining a very basic understanding of Python and quickly turning that into something with real-world application. Along the way, you’ll deepen your skills in the language."
Game Vortex


Page 97:
In the section "Factorizing and Expanding Expressions," the expand() function must be imported before it can be used:

from sympy import expand

Page 132:
In the section "Probability," the code line above the one marked with a (3), which reads:

for num in s:

Should instead read:

for num in space:

Page 139:
In the "Simulate a fictional ATM" program listing, the statement that reads:

probability = [1/6, 1/6, 1/3, 2/3]

Should instead read:

probability = [1/6, 1/6, 1/3, 1/3]