Python learning resources
- Non-Programmer's Tutorial for Python wikibook
- Python programming wikibook
- A byte of python
- How to think like a (python) programmer
- http://www.hetland.org/python/instant-hacking.php - quickie introduction to what programming is by Magnus Lie Hetland, master of the one-page tutorial.
- http://wiki.python.org/moin/BeginnersGuide/NonProgrammers - a list of more tutorials
Python for experienced coders
- http://www.hetland.org/python/instant-python.php - Python in a page. A "just get your hands dirty" crash course by Magnus Lie Hetland.
- http://diveintopython.org - A fantastic and comprehensive tutorial by Mark Pilgrim. Past the basic Python functionalities, he covers things like http web services, SOAP, unit testing, performance tuning... highly recommended. Also available as a paperback from Amazon.com.
- http://wiki.python.org/moin/BeginnersGuide/Programmers - a list of more tutorials for people who already code.
- The classic tutorial by Guido van Rossum (included by default with python installations)
- Code like a Pythonista: Idiomatic Python
- Python Challenge - a fun puzzle
- Python 201: (Slightly) advanced Python topics
- The decorator module and decorators made easy
- A primer on Python metaclass programming and an essay on python metaclasses along with the metaclass PEP
- Python 2.5 quick reference
Other tutorial collections
- Python tutorials - wide range of topics and formats, including videos.
Other handy resources
Finding python modules
- http://cheeseshop.python.org/pypi - The Cheese Shop (think Monty Python) is like Sourceforge for Python, containing links and updates to tons of Python modules.
Google - If you google 'python STRING' where STRING is what you're looking to do, such as 'python serial port' or 'python gui', things will inevitably pop up.
Graphics and GUIs - 2D
- http://www.metaslash.com/python10/ - presents a number of options with examples and documentation. Good starting point.
- wiki.python.org/moin/TkInter - Tkinter is the standard Python gui.
- http://www.pygame.org - PyGame is a library developed for creating video games in Python, but it's evolved past that and is now an excellent way to interface graphics with mouse and keyboard input. If all you need is a couple keypresses, or want to make anything vaguely game-like (moving graphics), this is for you. Excellent tutorials.
- www.wxpython.org - wxPython is a cross-platform Python gui for Windows and Unix. Powerful, can open Windows dialogs easily. Basically, a replacement for MFC. The downside is that it is hard to learn because it has many, many commands.
- http://pythoncard.sourceforge.net - PythonCard is a gui editor for creating wxPython guis. Think of it as the Resource Editor in Visual C++ when you are making an MFC gui. Relatively young, not very well documented, but very easy to use with lots of sample code that you can figure most things out from. Recommended for making Windows applications, but runs on OSX and Linux too.
- http://www.pygtk.org/ - a wrapper for the GTK library in Python. Recommended for making Linux applications, but runs on OSX and Windows too.
Graphics - 3D
- vpython.org - VPython makes real-time 3D scenes in Python. Unbelievably easy to use; it took me all of 5 minutes to go from installation to having various 3-d shapes bounding around on my screen.
- www.blender.org - 3D modeling, animation, rending, post-production, interactive creation (read: games, or virtual 3d interfaces), and playback. Incredibly powerful (full-length professional-quality movies have been made in it). All python - you can write your own scripts in it. Totally free.
- pyode.sourceforge.net - Python bindings for the Open Dynamics Engine, a decent-quality physics simulation engine. Works well when coupled with vpython.
- http://en.wikipedia.org/wiki/Trac - Trac is an amazing collaboration system, integrating SVN (version control) with tickets, bugtracking, and a wiki for communications.
- http://en.wikipedia.org/wiki/MoinMoin - MoinMoin is a popular wiki engine written in Python.
- http://pyserial.sourceforge.net - serial port interface
- http://pyparallel.sourceforge.net - parallel port interface
- http://pyusb.berlios.de - usb port interface, relatively new module
- http://www.py2exe.org - make your python program into a windows executable that can be run on any windows machine
- http://www.bstpierre.org/Projects/msword.py - Python and MS Word.
- http://www.boddie.org.uk/python/COM.html - Python and COM; you can write scripts for things like Outlook.
- http://www.markcarter.me.uk/computing/python/excel.html - examples for how to work with Excel and python
- http://sourceforge.net/projects/pywin32/ - pywin32 makes all windows functions accessible via Python. The above examples use it.
- http://www.oreilly.com/catalog/pythonwin32/ - a print book, but I'm told it's a good reference for the pywin32 library which lets you do pretty much anything in Windows using Python.
- http://pyunit.sourceforge.net - unit testing for python programs. Like JUnit for python.
- www.jython.org - Jython is a Python implementation in Java. You can use Java libraries, embed Python in Java code...