Beginning Python: From Novice to Professional (Magnus Lie Hetland; Apress, 2005)
Python Scripting for Computational Science (Hans Petter Langtangen; Springer, 2006, Second Edition)

How to develop software using Python

The Python programming language has become a favorite programming language in science as well as in industry. Python is easier to use than most object-oriented languages, such as Java or C++. Python has been in development since the early 1990s, and its popularity is rising steadily.

Python was originally developed by Guido van Rossum for managing a distributed operating system. Nowadays Python is often used in, e.g., grid computing and implementing www platforms (such as Zope). Python is also often used as a scripting language in computational sciece, where it can act as a Matlab replacement.

Python is included in the Mac OS X operationg system, and is found in most Linux distributions. It can be easily installed on Windows as well.

The Python language is easy to learn. The features suit also demanding applications, except perhaps heavy number crunching.

Python suits exploratory programming where the application is constructed piece by piece. Python can be used to implement simulation environments, for example using the modules NumPy, SciPy and Simpy. It is easy to prototype an application in Python, and later implement the heavier calculations in C or Fortran.

Python is used by such organizations as NASA, Yahoo, and Google. It is used at CSC for many kinds of purposes from post-processing of data to scientific software development and web programming.

A lot of introductory material about Python is available at www.python.org. If Python sounds interesting, a good book helps in learning to use Python effectively. Here are reviews of two excellent examples.

Beginning Python: From Novice to Professional (Magnus Lie Hetland; Apress, 2005)

The book Beginning Python is based on the book Practical Python by the same author. The original book was written for the novice, and proved to be an excellent if somewhat verbose introduction to Python. The new book continues the proven concept, but includes more advanced material, and is sligthly reorganized. The book is based on the version 2.4 of Python, which contains many enchangements compared to older versions.

The book introduces Python to the novice programmer. No previous knowledge about programming is needed. The basic principles of Python are described thoroughly. Many often easily overlook aspects of Python are clearly taught. 

For more advanced programmers the best part of the book are the application examples in the end. After setting up the problem, a fast prototype is constructed first. Then, based on the prototype, a better and more flexible Python implementation is developed. The examples include graphical user interfaces, web programming, and text processing.

Beginning Python is an excellent introduction to programming and Python. The author has once again written an exemplary text on the practise of software development.

Python Scripting for Computational Science (Hans Petter Langtangen; Springer, 2006, Second Edition)

The Book Python Scripting for Computational Science is targeted to researchers who know programming and want to use Python effectively. The book contains a quick tutorial of Python, but most of the book discusses using Python in computational science. The topics include numerical analysis, mixing different programming languages, and user interface development.

The book contains quite advanced material. It is especially well suited for researchers who need to complement existing software with interfaces, or deal with file management or the analysis of simulation results.