Here we also need to mention the numpy data structure--these go hand-in-hand.  Functions without a way to transport results won't do much good.