Simon Willison’s Weblog

Python for teaching mathematics

Kirby Urner provides some great examples of how Python can be used as an aid to understanding mathematics on the marketing-python mailing list. I particularly liked this demonstration of Pascal’s triangle using Python generators:

 >>> def pascal():
         row = [1]
         while True:
            yield row
            row = [i+j for (i,j) in zip([0] + row, row + [0])]


  >>> gen = pascal()
  >>> for i in range(10):
            print gen.next()


  [1]
  [1, 1]
  [1, 2, 1]
  [1, 3, 3, 1]
  [1, 4, 6, 4, 1]
  [1, 5, 10, 10, 5, 1]
  [1, 6, 15, 20, 15, 6, 1]
  [1, 7, 21, 35, 35, 21, 7, 1]
  [1, 8, 28, 56, 70, 56, 28, 8, 1]
  [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

This is Python for teaching mathematics by Simon Willison, posted on 13th September 2003.

Next: Curious emails

Previous: Listutorial

Previously hosted at http://simon.incutio.com/archive/2003/09/13/pythonMaths