I've been learning Python lately, both for my job and just for fun. After all, all the cool kids are learning Python, aren't they? Best of all, I found a great puzzle called Python Challenge, which consists of several cryptic puzzles that require programming to solve.
If you're learning programming, or want to learn, or you already know some and want to expand your realm of expertise, I highly recommend it. Out of the levels I've done so far, there is one that requires Python. The others were designed to be solved in Python, but could probably be done in any other language.
If you get stuck, there is a help forum, but they usually help you more with the concepts rather than how to write the code, so I wouldn't necessarily think of it as "cheating"--but try to do them on your own. It's more fun that way.