Take The Python Challenge


It’s hard to believe that we haven’t covered this one before. If you enjoyed out Barcode challenges from last week, perhaps now is the time for you to take the Python Challenge. We made it through the first 18 levels about a year back but with a total of 33 levels we’re not even close to being finished.

This is an excellent opportunity to learn Python if you’ve never tried it, or test your skills if you’ve already got them. We’d suggest using IDLE which is available as part of the Python language download. Because Python is an interpreted language, IDLE allows you to try out each line of the code you are writing and add it to your program as you get different sections working.

The levels start out fairly easy and require some sniffing around, such as looking at the source code, and dissecting images with Python’s various libraries. As you pass each level, you will be granted access to the Python Challenge forums in order to see how others solved the level. By solving each level and then seeing what different solutions entail you grow your knowledge of the language and reinforce your understanding of how to use it.

24 thoughts on “Take The Python Challenge

  1. Here’s a hint so as not to waste your time.
    Challenge No.5 includes a verbal riddle, that I’ll give away for two reasons:
    1) It Isn’t a python challenge, it’s totally unrelated to actual programming (except maybe a knowledge of terminology)
    2) It’s totally CRAP!
    Apparently the author thinks “Peak Hill” sounds enough like “pickle” to constitute a riddle. It doesn’t!

  2. @therian Your comment about C would be a better language for hack a day….

    Use C to do the challenge. There is no requirement on “how” you find the answer.

    Better yet find a micro you like and do it in uP assembly.

    I used a shift register for one of them. Would have been just as easy to do it in asm.

  3. @Randy:

    While I can understand you thoughts about puzzles not being the greatest way to teach programing, it does on the other hand make you think and to come up with solutions. More to the point, if you know a certain language fairly well, it will will exercise problem solving skills.

    Being able to look at abstract concepts and figure out a solution is pretty vital to being a decent programmer.

  4. I could only get through the first four before I lost interest… There are a lot of languages I use but those first four problems seemed easiest to solve in shell. What could be easier than using “tr” for problem 2? The first one was easiest to do with a calculator, “gp” is the one I use. The third problem can be easily solved using egrep and vim. The fourth is just a one-liner using curl and tr, although the “twist” he put in that one ended up wasting some time.

  5. @CH, I agree. The problems aren’t well defined, you simply do not know what you’re solving if it is abstract enough (peak hill and pickle?). I simply lost interest on problem 5.

  6. “Python is an interpreted language”

    There’s no such thing. Python is a language which is often run by an interpreter. There are also several compilers and more in the works.

  7. I have been doing the “challenge” for the past few days. Yes, I have learned some new python and gotten some good exposure to some new modules. That said, the amount of learning python vs. spending time in a labyrinth of riddles (mostly just for the author’s apparent amusement at watching ants fry under a magnifying glass), I’d have to say it’s not a good method to teach or inspire programming in python at all. For my money, take the same challenges and pose them as direct questions and let interested programmers work on them I think the riddles aspect is a huge turnoff to most people – it’s 90% riddles and 10% programming. If that much.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.