views:

230

answers:

8

I'm downloading Python 3.1.1 and that comes with the IDLE correct?

I'm also downloading QT for Windows which I'm told is a good GUI framework to work with Python.

What projects should I try to make in order to grasp some of the goodies Python brings to the table?

Thanks a bunch SO.

+1  A: 

If you are new to python, why not start with some simpler command line projects? I know you said you are not new to development, but maybe you should spend some time with the core python stuff before tacking on a GUI framework. Just a suggestion.

Also, I would point out that Python 3+ code looks a bit different than a lot of the python 2.x code samples you will see around the internet. I have found Python 3 to be not the best in terms of backward compatibility. You might want to start out with a 2.x version of Python to get the most out of the plethora of Python tutorials on the internet, then move to Python 3 if you need it.

darren
+6  A: 

I highly recommend

http://diveintopython.org/

It assumes you already understand programming, and walks you through examples that demonstrate the unique abilities of Python.

Jon Reid
+1 for DIP...where I started too.
AJ
"You must be an official here, because your answer has officially given me a boner." Solved.
Sergio Tapia
Better look at http://diveintopython3.org since you're using Python 3.1.1
Tim Pietzcker
A: 

Write a simple Text Editor.

That was one of the projects i started when i first learned python. It gets you used to the GUI framework, file IO, many types, OOP, lots... It's something that you can grow over time as your confidence builds and it's cross platform so it's handy.

Gary Willoughby
+1  A: 

If python is your first dynamic lanugage you might want to play with some of it's dynamic aspects.

For example, using the getattr and setattr methods on objects, you could write a class that provides a fluent way of accessing elements from an XML document. Rather calling methods on an object with parameters like 'xml.getnode("a").getnode("b")' you could dynamically lookup the nodes as attributes and allow 'xml.a.b' instead. I thought this was very cool having come from static languages.

Note that this won't neccessarily give you a great feel for python in general (although you'll pick up the language as you go) but it will give you a taste of what is possible in dynamic languages.

Robert Christie
A: 

While it is a matter of personal preference, I certainly wouldn't want to play around with a GUI framework when starting out -- I would want to get a feel for the language first by playing around with smaller snippets, such as those suggested on Code Golf. While getting your code to fit into the smallest number of bytes perhaps isn't the best way to learn good design, I think it's a good way to learn parts of the language. Certainly, just doing the tasks without necessarily trying to compact them down excessively could be helpful.

Michael Williamson
Why the downvote? Please make a comment when downvoting.
the_drow
+3  A: 

Do the next project you intended to program with your prefered language with Python.

iChaib
+1  A: 

PythonChallenge

Code Golf

Google Code Jam

These are good ways to practice learning Python.

Might I also suggest that you consider using a different IDE.

If you are interested in GUI programming, I would suggest looking into wxPython, PyWin32, easyGUI, TkInter (which is bundled with the Python distribution)

inspectorG4dget
A: 

A project I wish someone would write: a friendly GUI that wraps around the scanner library and the PDF library, and lets the user easily scan and file documents.

It would have a toolbar with big buttons: "scan letter", "scan brochure", "scan photo". These would respectively choose high-resolution black-and-white, medium-resolution color, and high-resolution color.

The user would plop down the document and hit one of those buttons. Python would wake up the scanner and have it scan, and then would use Python Image Library or something to auto-detect the size of the actual scanned document and auto-crop down to minimal size.

For "scan photo" you would get a JPEG. For the others, you would get a PDF. And it would have an option where you could scan several pages and then select the scanned pages, and say "group" and it would make a single PDF out of them.

Other useful toolbar buttons would be: "Copy Letter", "Copy Brochure", "Copy Photo". These would scan and then immediately print on an appropriate output device (or just on the default output device for your first version).

If you want to go crazy, you could add an OCR function to try to recover searchable text from the scanned images, and put that in the PDF as tags or something.

Someday I will write this if nobody else does...

steveha