
You think you're ready for a challenge, do you? Good, because this is the place! Demonstrate your Python mastery with one of the following Useless Challenges. Anything you can code is good enough for Useless Python (It should run, of course.), but the Useless Challenges are here to jog your creativity if you think you've run out of ideas. Solutions will be posted to Useless Python with this Python Challenge signature image:
to indicate the worthiness of the coder(s).
Some of these could be done by an inexperienced coder without causing a terminal brain lockup, but intermediate coders should find some food for though here, as well. Your code doesn't have to be the prettiest, the most efficient, the most Pythonic, or even the first solution to any Challenge. In fact, you can ask people for critiques and pointers, and give them the URL of your source here. Team hacking is encouraged!
If you can think of any interesting Challenges to add to the list, you are welcome to send them our way for posting on the list. Send solutions or new challenges to: Useless. Challenges on this page displaying the Python Challenge signature image have been solved and posted on Useless Python.
If you have already sent in a script that you feel solves one of the Challenges, let me know so you can be credited. And you do not have to be the first to solve any given Challenge. Any number of solutions may be submitted by anyone for any Challenge.
If you crave even more challenges, check out our programming contest problems/solutions. And just remember: Every problem solved with Python helps the Python world out a little bit more.
There are a few Challenges here that I think would make great collaborative projects and generate some lively discussions, especially on the Tutor List. And isn't it great for the Tutor Archives to have a record of people learning Python by doing really nifty things. We're well on the way to a snapshot of the software development cycle with this nifty collection of examples of how people really learn programming. Somebody should be able to squeeze a Master's thesis out of this stuff, at the very least! (Hey, waitaminute......)
| Image: | Meaning: |
|---|---|
| Challenge Solved! | |
| Unsolved Challenge! |
| Status: | Challenge: |
|---|---|
| Write a script that converts simple PASCAL-code to Python-Code or vice-versa (for demonstration purpose). Could possibly be done with a couple of regular expressions ...? | |
| An app used to parse a cookie file for user viewing and editing. Feel free to add cool extras, like user-editable *hot lists* of cookies to filter or batch-process. | |
| This one was inspired by Donald Knuth's "Selected Papers on Computer Science". Here's the general idea: "The numbers sqrt(1), sqrt(2), ..., sqrt(50) are to be partitioned into two parts whose sum is nearly equal; find the best such partition you can, using less than 10 seconds of computer time." | |
| Visit the archive of scripts on CPAN (not the modules, unless you really aim to impress us) and re-write some of them in Python. | |
| Any script, application, servlet, etc. designed as a collaboration between two or more people. | |
| Python versions of software along the lines of SilkQuit. It keeps track of how long it's been since your last cigarette, the amount of money you've saved, the number of cigarettes you haven't smoked, and the amount of time you've added to your life expectancy (based on a rather tiny amount of user input, of course). This same concept could be applied to a wide variety of purposes other than quitting smoking, and those might qualify for this one. | |
| A way to give automated tests using either a web interface or the GUI of your choice. Command line is okay, as long as it's functional. The more meaningful the results report is, the better! | |
| Automate Useless Python! We need a way for people to post comments on other people's source, at the very least. It shouldn't have to keep track of comment threads, but should be simple, like a Post-It note of sorts. | |
| Automate Useless Python! It would also be nice for people to be able to upload source code files, add links to their sites, post Press Releases, etc. without making server security a big joke. | |
| Automate Useless Python! A variant on the comment idea, a form for drafting and sending an email to the author of a Useless source file. | |
| Automate Useless Python! Come up with a way for someone to post to the Tutor List and to read it as well. (The Tutor Archives might prove helpful.) | |
| Automate Useless Python! Here's a fun one! Come up with a way to generate the .html pages dynamically. | |
| Chat application that does not require a central server. Two clients on separate machines on the same network or on the Internet should be able to initiate chats with each other. For bonus points, the chat clients have a GUI front end and/or employ some simple form of encryption (Rot 13 or better). | |
| App opens a comma-delimited file with the first row consisting of field names and each following row consisting of one record per line (sample available for download) and performs one or more of the following actions (or any other interesting action): 1) sort the records alphabetically by one of its fields, 2) remove exact duplicate records, or 3) convert the file into a different format and save the converted file under a different name. | |
| App retrieves system or directory information of your choice on the operating system of your choice, parses the output, and generates a simple report from it. Print the report to stdout or to a file. | |
| Simple calculator app with a GUI front end. | |
| Simple personal finance tracking app. We're not talking about a commercial package here, so don't think you have to reverse-engineer Quicken. | |
| Simple personal organizer with some of the following features: address book, todo list, notes, common conversions, calendar, etc. | |
| CGI capable of any of the following: 1) user can browse a file from his/her computer and send a copy somewhere else, 2) accept user input and send it via email, 3) anything interesting at all. | |
| Web versions of any of the Useless Challenges. | |
| Artificial Intelligence program (doesn't have to pass the Turing test). | |
| Generate or parse an XML document. | |
| Extract email addresses from a text file containing more than just email addresses. | |
| A game of any kind. | |
| App that fetches a file from a remote web server and parses it in an interesting or useless way. | |
| An IDE (Integrated Development Environment) for Python! | |
| A KISS viewer. | |
| A Python equivalent to the Tk widget tour demo that starts when you install Tcl/Tk.. | |
| A Python Beauty Contest. If a sister language can have an "obfuscation" contest, why should we not celebrate Python's elegance? |
by Rob Andrews