import antigravity
February 1, 2009 10:40 AM   Subscribe

I'm learning Python for fun and need ideas for neat programs to write.

I know the basic features of the language pretty well, including some of the trickier stuff like list comprehension, but I don't know the standard library very well.

So that you can gauge my current level, I'll have you know that the most sophisticated thing I've written so far is an implementation of the game Reversi (aka Othello), including a simple AI, for which I am currently writing a GUI in wxPython (I didn't like Tkinter).

Not interested in learning Django (yet).

I used the challenges in Project Euler for a while -- I solved the first 25 -- and it was fun while I was still mastering the semantics of Python. But I've grown tired of them: the problems are increasingly complex mathematically, but relatively easy to implement once one grasps the appropriate algorithm. I also dabbled with Python Challenge.
posted by limon to Computers & Internet (10 answers total) 44 users marked this as a favorite
 
PyGame is fun to play with, and the examples are helpful.
posted by SpecialK at 10:42 AM on February 1, 2009


Dave Thomson's Code Kata. Very practical real world problems to solve in bite sized chunks.
posted by fatbird at 10:51 AM on February 1, 2009 [1 favorite]


It's pretty fun to use the Obj. C bridge to write apps for OSX.
posted by plexi at 11:06 AM on February 1, 2009


A link would have been helpful.
posted by plexi at 11:07 AM on February 1, 2009


Play with genetic algorithms a little bit - they never cease to amaze me. Try to evolve a certain image, or solve some other tricky problem.

Use an algorithm based on ant colonies to solve a travelling salesman problem.
posted by chrisamiller at 11:58 AM on February 1, 2009


PyMOTW is great for learning standard libraries and Programming Collective Intelligence is a great book for getting started on some awesome ideas. All examples are in Python.
posted by swapspace at 1:18 PM on February 1, 2009


One of the most useful things to learn is to read files and manipulate data in them. If you have anything relevant to your life or your past projects in Excel or Matlab, try saving them as tabbed text files and do some 'data mining'. Log files can also be interesting. If the data contains natural language, at some point you'll need to learn regular expressions to find things. Regular expressions are un-pythonic, but very useful cross-language skill.

In any knowledge intensive work you'll meet tasks that need ripping information from many documents. It is good to have an intuition when the task could be automated with a clever python script.
posted by Free word order! at 2:08 PM on February 1, 2009


You can get up to speed on visual stuff in Python quickly with Nodebox. It is a sexy way to immediately begin creating visual works using Python, including full support for python imports and other stuff. Nodebox focuses on 2D, at least in my experience. I don't think there is native 3D support (but here's a quick example of a guy who created a 3DPoint class).
posted by zpousman at 2:25 PM on February 1, 2009


All the problems you could want.
posted by Zed at 4:17 PM on February 1, 2009


I asked a similar question a while back relating to python and puzzles, maybe you'll find something that appeals to you, too.
posted by cowbellemoo at 7:56 PM on February 1, 2009


« Older Best Apple Dessert   |   Outlook whitelisting question Newer »
This thread is closed to new comments.