I have learned something important today. In Python, the '==' operator is more-or-less equivalent to java's .equals() methods---checking whether things 'look' the same---, whereas the 'is' operator does what java's '==' does---an identity check. It turns out that with PyGame, by accident, 'letter' keys on the keyboard work when compared via 'is', whereas arrow keys, control keys, etc, do not. Tetripy was not responding to my arrow keys for this reason, and changing all the 'is' to '==' allowed them to work correctly.

The moral: be careful of what syntax you're using for the language, and how the subtle difference are different.

tech Software