Bookmarks for Introduction to Python 3
Advanced Topics
- Functional Programming with Python
- A talk given by Alexey Kachayev at PyCon 2012
- How to install MinGW compiler
- Instructions for installing the MinGW compiler; needed for extending Python or Perl with C
- How to install SWIGWIN.exe
- How to install swigwin.exe; this is one method used for extending Perl or Python with C.
Editors/IDEs
- Eclipse
- Powerful IDE for many languages; originally developed for Java.
- Is it me or is eclipse a piece of s***
- From the introduction: I know eclipse is free, but come on, I don't know how people actually use this piece of s**t to build software. I like open source as much as the next guy, I just like "high quality open source" which may be an oxymoron. NOTE: this is a blog posting followed by nearly 100 comments, almost all of which agree with the blogger.***WARNING: Contains a large amount of profanity***
- Komodo Edit
- Open source editor/IDE for many languages. Does not provide debugging support or the RE toolkit like its commercial sibliing Komodo IDE, but otherwise very powerful and programmer-friendly. It has syntax highlighting, autocompletion, and much more.
- Mastering the VI editor
- This tutorial is written to help beginning users get accustomed to using the VI editor, but also contains sections relevant to regular users of VI as well.
- Notepad++
- Full-featured open source editor for Windows. Has syntax highlighting, autocompletion, RE support, etc. Resembles the original Notepad in name only!
- Pida - A Framework for integrated development
- PIDA is an IDE (integrated development environment). PIDA is different from other IDEs in that it will use the tools you already have available rather than attempting to reinvent each one. PIDA is written in Python with the PyGTK toolkit, and although is designed to be used to program in any language, PIDA has fancy Python IDE features.
- PyDev download site
- Download PyDev, the Python editing plugin for the Eclipse Platform
- PyScripter
- PyScripter is a free and open-source Python Integrated Development Environment (IDE) created with the ambition to become competitive in functionality with commercial Windows-based IDEs available for other languages.
- PyTools
- Python Tools for Visual Studio
- Python Development with PyDev and Eclipse - Tutorial
- This article describes how to write and debug Python programs with Eclipse
- Python Editors (on Python Wiki)
- A list and discussion of Python editors
- Using Perspectives
- An article explaining how perspectives work in Eclipse
- Vim
- A full-featured editor with vi compatibility. Be sure to install gvim, the GUI version.
- XML Copy Editor
- A free editor/IDE for manipulating XML, including validation and XSLT
- spyder
- The spyder editor, from the pythonxy project. A full-featured, cross-platform Python IDE with support for debugging, iPython, and many other goodies.
- sublime editor
- From the web page: "Sublime Text is a sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance."
General
- It's Not You, It's Them: Why Programming Languages Are Hard To Teach
- (NSFW) I've been teaching programming for a few years now, and I've come to realize that the harder a languages is to teach, the more poorly designed it is
- Microsoft Windows Bitmap File Format Summary
- File layout for .bmp files
- Moby Words
- Grady Ward's lexical lists, including 610,000 words and phrases, the largest word list in the world. These are great for word games or test data. Also, hyphenated entries, parts of speech, and thesaurus
- Project Gutenberg
- Thousands of plain-text eBooks -- from the Bible to Shakespeare, and many more modern classics.
- Public XML-RPC Services
- A list of public servers for XML-RPC
- TIOBE Programming Community Index
- The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.
- TkDocs Tk Tutorial
- This tutorial will quickly get you up and running with the latest Tk from Tcl, Ruby, Perl or Python on Mac, Windows or Linux. It provides all the essentials about core Tk concepts, the various widgets, layout, events and more that you need for your application.
- Unicode Charts
- Unicode Character Code Charts by Script (updated for Unicode 5.1)
- WOTSIT
- The Programmer's File and Data Resource -- a compendium of binary file formats
- merge-sort algorithm explained with folk dance
- A visual presentation of the merge-sort algorithm using folk dance, from Sapientia University, Romania.
Object-Oriented Programming
- Coupling and Cohesion
- A slide show describing the OOP concepts of coupling and cohesion
Python
- A Guide to Python's Magic Methods
- This guide is the culmination of a few months' worth of blog posts. The subject is magic methods.
- ActivePython
- ActiveState's main Python page
- ActiveState Code
- The online Python code archive from ActiveState. It is tied in with the Python Cookbook, and has over 2000 recipes for Python programming.
- An Introduction to Asynchronous Programming and Twisted
- From the preface: "Someone recently posted to the Twisted mailing list asking for something like the 'Twisted introduction for people on a deadline'. Full disclosure: this isn't it. On the spectrum of introductions to Twisted and asynchronous programming in Python, it may be on the exact opposite end. So if you don't have any time, or any patience, this isn't the introduction you are looking for."
- Best Practices for Python Scripting
- A 4-page quick reference by Matt Harrison
- Charming Python: TK programming in Python
- (From IBM) Tips for beginners using Python's GUI library
- Cheese Shop
- Python module repository
- Class decorators might also be super!
- David Beazley illustrates that a class decorator can be used instead of super() for a mixin class
- Code Skulptor
- CodeSkulptor is a browser-based Python interpreter, as featured in the online course "An Introduction to Interactive Programming in Python"
- Design Patterns in Python
- Design Patterns in Python is a free online book written by Rahul Verma and Chetan Giridhar on the subject of employing design patterns in the world of object-oriented programming using Python. The book is written in a way to keep the discussion and the related examples simple.
- Dive Into Python
- Free online book which goes from elementary through advanced concepts
- Django project
- Main page for the entire Django project
- Django templates
- Programmer's guide to using Django templates
- Django: My First Impressions
- Ross Poulton's description of how Django let him create a Python-based web site in hours that had taken months in PHP
- Extending Python with C
- A discussion and tutorial on creating C interfaces by hand
- Extending and Embedding the Python Interpreter
- This document describes how to write modules in C or C++ to extend the Python interpreter with new modules.
- Generator Tricks for Systems Programmers
- Slide show and example Python scripts explaining generator functions and generator expressions.
- Getting Started with Django
- In this quick tutorial, Marakana Python expert Simeon Franklin will cover: - Installing django the easy way - using a virtualenv to isolate your development environment - getting rid of hard coded paths in your settings.py
- Google Calendar API v1 Developer's Guide
- Google Calendar allows client applications to view and update calendar events in the form of Google Data API feeds. Your client application can use the Google Calendar Data API to create new events, edit or delete existing events, and query for events that match particular criteria.
- Google's Python Style Guide
- The Python style guide in use at Google
- Guido on main() function
- (Guido says) For Python programmers, I've got some suggestions on how to write a main() function that's easy to invoke in other contexts, e.g. from the interactive Python prompt when you feel like experimenting.
- Guido's Home Page
- Guido van Rossum's personal home page
- How to write "Pythonic" code
- Notes from a talk given 2008-04-13 at RuPy about the right way to write Python
- How-To Guide for Descriptors
- Defines descriptors, summarizes the protocol, and shows how descriptors are called.
- Introduction to Twisted
- Excellent video on Twisted by Chander K. Ganesan of the Open Technology Group
- Invent with Python
- Hello! This is a book that will teach you how to program by showing you how to create computer games (from chapter 1)
- Learn Python The Hard Way
- This is the site for the book "Learn Python The Hard Way". The book is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up their skills before starting a more detailed book.
- Metaclass programming in Python
- Pushing object-oriented programming to the next level
- New Relic (commercial product)
- Get Real-Time Visibility Into Your Python Web App Gain performance insights while in production Work with actual production data The Python community is no stranger to performance, and now you can take it to the next level by monitoring your app in a production environment. New Relic lets you see the whole stack, front to back so you can find and eliminate performance bottlenecks before they affect your end users. Works out of the box with frameworks like Django, Flask, Bottle, CherryPy, and Pylons.
- Online Python Tutor
- Online Python Tutor is a free educational tool that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code.
- Plumbum
- Ever wished the wrist-handiness of shell scripts be put into a real programming language? Say hello to Plumbum Shell Combinators. Plumbum (Latin for lead, which was used to create pipes back in the day) is a small yet feature-rich library for shell script-like programs in Python. The motto of the library is "Never write shell scripts again", and thus it attempts to mimic the shell syntax (shell combinators) where it makes sense, while keeping it all Pythonic and cross-platform.
- PyAtl presents: A Brief Introduction to Buildout (January 2008)
- This is the talk that I (Brandon Craig Rhodes) gave about the "buildout" development and deployment technology to conclude our January 2008 meeting of the Python Atlanta Meetup. This is actually a somewhat modified version of the talk, since I found that simplifying the slides made for a better online presentation
- PyCon
- Annual grassroots (volunteer-run) Python Conference
- PyMySQL
- PyMySQL: Pure Python MySQL Client
- PyWin32
- Python library for Win32 (needed for Windows event Logging)
- Pydev IDE
- An Eclipse Plugin for Python
- Pyramid is too damn easy
- Daniel Nouri's blog post describing a Python/Pyramid success story.
- Python 3 primer, Part 1
- Summary: Python 3 is the latest version of Guido van Rossum's powerful general-purpose programming language. It breaks backwards compatibility with the 2.x line but has cleaned up some syntax issues. This article is the first in a series that talks about the changes that affect the language and backwards compatibility, and it provides examples of new features.
- Python Attributes and Methods
- Explains the mechanics of object attribute access for new-style Python objects.
- Python Best Practices
- A laundry list of dos and don'ts for Python developers by Leonardo Maffi
- Python Challenge
- The Python Challenge is a set of riddles that require a little bit of Python programming to be solved. The solutions are entered by changing the address of the page (URL). You get used to the idea pretty fast after solving the first few levels.
- Python Cheat Sheet
- A one-page Python 2.x cheat sheet
- Python Cookbook
- Python Cookbook — a clearinghouse for assorted Python tips and scripts. (Maintained by the authors of the O'Reilly & Assoc. book Python Cookbook)
- Python ElementTree XML Tutorial
- Tutorial for ElementTree module
- Python Essentials
- A page with many good Python links (some links may be out-of-date).
- Python Gotchas
- This is a page devoted to Python "gotchas"
- Python Home Page
- Main web site for all things Pythonic
- Python IDEs
- An annotated list of Python IDEs
- Python Jobs
- Python job postings; also has customized links to popular job search sites such as Monster.com and DICE
- Python Journal
- Python Journal -- a little out-of-date, but some good information
- Python Library Reference
- Keep this under your pillow (this is where the documentation for all basic Python functions, objects, and modules lives).
- Python Module of the Week
- Doug Hellmann's Python Module of the Week series, or PyMOTW, is a tour of the Python standard library through short examples.
- Python Packaging Guide
- How to build Debian Unix packages to distribute Python packages
- Python Quick Reference
- Richard Gruet's Home page (scroll down for links to his excellent Python Quick Reference in various formats)
- Python Testing Tools Taxonomy
- A description of available Python testing tools
- Python Timeline
- From first release through 2001
- Python Tools for Visual Studio
- An integrated environment for developing Python in VS2010
- Python Usenet group
- The main Python discussion group on Google Groups (FKA Usenet)
- Python Wiki
- A wiki for all things python. Lots of good explanations and tutorials.
- Python __Underscore__ Methods
- A discussion of all the special builtin methods that can be used to override operators and builtin functions
- Python for Unix and Linux System Administration
- From the web sitePython is an ideal language for solving problems, especially for Linux and Unix. With this pragmatic book, administrators can review various tasks that often occur in the management of these systems, and learn how Python can provide a more efficient way to handle them. Once you finish this book, you'll be able to develop your own set of command-line utilities with Python to tackle a wide range of problems.
- Python's Super Considered Harmful
- James Knight's discussion of why NOT to use the super keyword in Python
- Pythonology
- From the web siteI try to tag the amazing things people are doing with Python in my del.icio.us feed. Keep your eye on Planet Python or its RSS feed for other interesting new stuff.
There's always something new in the Python world.
- RESTful Application Example
- One framework that gets it right is web.py. When combined with the mimerender library, it allows you to write nice RESTful webservices:
- SWIG
- A C/C++ interface generator for Python and other languages
- Socket Programming How-To
- A guide to programming with sockets; part of the standard Python Documentation
- Special Method Names
- Special methods for user-defined classes to emulate builtin types
- Speeding up and running legacy test suites, part one
- This is part one in a two part series on Test Driven Development at SpiderOak. In part one, I discuss ways to decrease the time it takes to run a test suite
- Speeding up and running legacy test suites, part two
- In part two, I discuss two ways to run a test suite that are painful if the tests are slow, but greatly beneficial if performed often with fast tests.
- Tkinter Book
- An online Tkinter book with thorough descriptions of each widget
- Tutorial on Threads Programming with Python
- Threads tutorial written by Norman Matloff and Francis Hsu, University of California, Davis
- Twisted Code Examples
- A selection of code samples from the Twisted documentation
- Twisted Matrix Labs
- The home page of Twisted, the event-driven networking framework.
- Twisted News Group
- General discussion group for Twisted
- Twisted Web in 60 seconds
- A series of articles on how to put together Twisted applications
- Unit Testing Guidelines
- The Pylons Project rather rigorously follows a unit testing dogma along the lines described by Tres Seaver in Avoiding Temptation: Notes on using unittest effectively which this document is based on.
- Unofficial Windows Binaries for Python Extension Packages
- This page provides 32- and 64-bit Windows binaries of many open-source extension packages for the official CPython distributions of the Python programming language.
- What is a metaclass in Python?
- Great StackOverflow answer to the question "So what are metaclasses? What do you use them for?"
- Why Python?
- Well-known hacker and Linux Advocate Eric Raymond discusses his Python Epiphany (and why he abandoned Perl)
- abc module
- Abstract base classes are a form of interface checking more strict than individual hasattr() checks for particular methods. This is the discussion on Doug Hellmann's Python Method of the Week blog
- blessings 1.5
- A thin, practical wrapper around terminal coloring, styling, and positioning
- distribute 0.6.24
- Distribute is a fork of the Setuptools project. Distribute is intended to replace Setuptools as the standard method for working with Python module distributions.
- nose
- nose extends unittest to make testing easier.
- restclient
- A helper library to make writing REST clients in python extremely simple
- web.py
- web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions
Python for Scientists and Engineers
- A short demo on how to use IPython Notebook as a research notebook
- The great part about the seamless integration of text and code in IPython Notebook is that it's entirely conducive to the "form hypothesis -- test hypothesis -- evaluate data -- form conclusion from data -- repeat" process that we all follow (purposely or not) in science.
- IPython
- IPython provides a rich toolkit to help you make the most out of using Python, with: Powerful Python shells (terminal and Qt-based). A web-based notebook with the same core features but support for code, text, mathematical expressions, inline plots and other rich media. Support for interactive data visualization and use of GUI toolkits. Flexible, embeddable interpreters to load into your own projects. Easy to use, high performance tools for parallel computing.
- IPython: A System for Interactive Scientific Computing
- The IPython project provides an enhanced interactive environment that includes, among other features, support for data visualization and facilities for distributed and parallel computation.
- Introduction to NumPy and Matplotlib
- Tutorial by Eric Jones from PyCon 2012
- Large-scale Array-oriented Computing with Python
- A discussion of NumPy, SciPy, and their succeosrs by the leader of NumPy development. Keynote for Day 1 of PyCon Taiwan 2012, by Travis Oliphant
- List of packages in Python(X,Y)
- This is the extensive list of packages in PythonXY, a complete installation of Python for numerical analysis, science, and engineering
- Multi dimensional (axial) slicing in Python
- A blog entry on slicing multidimensional arrays in numpy
- NumPy
- NumPy is the fundamental package for scientific computing with Python. It contains among other things: a powerful N-dimensional array object sophisticated (broadcasting) functions tools for integrating C/C++ and Fortran code useful linear algebra, Fourier transform, and random number capabilities
- PyAOS
- Python for the Atmospheric and Oceanic Sciences
- PyEphem
- PyEphem provides scientific-grade astronomical computations for the Python programming language
- Python Imaging Library (PIL)
- The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities.
- Python as Super Glue for the Modern Scientific Workflow
- An insightful talk by Joshua Bloom on how python is used for controlling telescopes and visualizing data
- SciPy
- SciPy (pronounced "Sigh Pie") is open-source software for mathematics, science, and engineering.... The SciPy library depends on NumPy, which provides convenient and fast N-dimensional array manipulation. The SciPy library is built to work with NumPy arrays, and provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.
- SymPy
- SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.
- Teaching with ipython notebooks -- a progress report
- A discussion of using iPython to teach programming and science at the college level
- iPython in depth
- A video of a 3-hour tutorial on iPython, presented by the creators of iPython
- matplotlib
- matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala MATLAB or Mathematica), web application servers, and six graphical user interface toolkits.
- pandas (Python Data Analysis Library)
- pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
Regular Expressions
- Expresso
- The premier regular expression development tool The award-winning Expresso editor is equally suitable as a teaching tool for the beginning user of regular expressions or as a full-featured development environment for the experienced programmer or web designer with an extensive knowledge of regular expressions.
- Jeffrey Friedl's web site
- The web site for the author of Mastering Regular Expressions. If you buy the book from his site, he makes a bit more money. We should support him!
- Kodos
- Kodos is a Python GUI utility for creating, testing and debugging regular expressions for the Python programming language.
- Mastering Regular Expressions
- The most complete book on regular expressions ever.
- Open Group Specifications for Regular Expressions
- Detailed and academic specification for REs and EREs from The Open Group
- Python Regular Expression Testing Tool
- A simple web-based tool for testing Python regular expressions
- RE Quick Reference
- A chart (in PDF) which shows what each metacharacter does, and for which applications it's valid.
- RegEx Advice
- Looking for help with regular expressions? You'll find regular expression forums and blogs here at RegexAdvice.com
- RegExLib.com
- Welcome to RegExLib.com, the Internet's first Regular Expression Library. Currently we have indexed 2392 expressions from 1450 contributors around the world.
- Regex Coach
- The Regex Coach is a graphical application for Windows which can be used to experiment with (Perl-compatible) regular expressions interactively.
- Regex Tool
- A web-based tool for PHP and Javascript regular expressions
- Regular-Expressions.info
- In their own words, "The Premier website about Regular Expressions". They have tools and tutorials for using regular expressions with many different languages and applications.
- jQuery Regular Expressions Review
- A comprehensive review of all jQuery regular expressions was recently performed, and this article presents the results of this analysis and offers improved versions
- re -- Regular expression operations
- Python re module documentation
SQL and Databases
- Details on MySQL support for regular expressions
- MySQL's support for regular expressions is rather limited, but still very useful. This section of regular-expressions Info describes the support for regular expressions in MySQL using the RLIKE operator
- Writing An Hadoop MapReduce Program In Python
- In this tutorial, I will describe how to write a simple MapReduce program for Hadoop in the Python programming language.
Web Programming
- All The Cheat Sheets That A Web Developer Needs
- See title :-)