I've been trying to learn some python (trying to add some value to the huge amount of procrastination I've been doing recently), and I've found this site:
http://www.checkio.org/http://www.checkio.org/It's pretty interesting because it also features this "after you complete the challenge you can see other's solutions" mentality, and has quite a large user base. However, it has four drawbacks: 1 - the english may be incomprehensible at times, 2 - you must use their interpreter (which misses some modules such as numpy), 3 - the challenges start way too hard, you'll have to know the very basics already 4 - some challenges are not very much a programming exercise but mostly a math challenge (the one I'm now requires me to do trajectory intersections).
I think the biggest advantage is the fact that there are *many* solutions, ranging from way too complicated to very simple, and every solution has a lot of user comments picking apart the code and suggesting improvements.