1.Whetting Your Appetite

If you do much work on computers, eventually you find that there’s some taskyou’d like to automate. For example, you may wish to perform asearch-and-replace over a large number of text files, or rename and rearrange abunch of photo files in a complicated way. Perhaps you’d like to write a smallcustom database, or a specialized GUI application, or a simple game.

If you’re a professional software developer, you may have to work with severalC/C++/Java libraries but find the usual write/compile/test/re-compile cycle istoo slow. Perhaps you’re writing a test suite for such a library and findwriting the testing code a tedious task. Or maybe you’ve written a program thatcould use an extension language, and you don’t want to design and implement awhole new language for your application.

Python is just the language for you.

You could write a Unix shell script or Windows batch files for some of thesetasks, but shell scripts are best at moving around files and changing text data,not well-suited for GUI applications or games. You could write a C/C++/Javaprogram, but it can take a lot of development time to get even a first-draftprogram. Python is simpler to use, available on Windows, macOS, and Unixoperating systems, and will help you get the job done more quickly.

Python is simple to use, but it is a real programming language, offering muchmore structure and support for large programs than shell scripts or batch filescan offer. On the other hand, Python also offers much more error checking thanC, and, being avery-high-level language, it has high-level data types builtin, such as flexible arrays and dictionaries. Because of its more general datatypes Python is applicable to a much larger problem domain than Awk or evenPerl, yet many things are at least as easy in Python as in those languages.

Python allows you to split your program into modules that can be reused in otherPython programs. It comes with a large collection of standard modules that youcan use as the basis of your programs — or as examples to start learning toprogram in Python. Some of these modules provide things like file I/O, systemcalls, sockets, and even interfaces to graphical user interface toolkits likeTk.

Python is an interpreted language, which can save you considerable time duringprogram development because no compilation and linking is necessary. Theinterpreter can be used interactively, which makes it easy to experiment withfeatures of the language, to write throw-away programs, or to test functionsduring bottom-up program development. It is also a handy desk calculator.

Python enables programs to be written compactly and readably. Programs writtenin Python are typically much shorter than equivalent C, C++, or Java programs,for several reasons:

  • the high-level data types allow you to express complex operations in a singlestatement;

  • statement grouping is done by indentation instead of beginning and endingbrackets;

  • no variable or argument declarations are necessary.

Python isextensible: if you know how to program in C it is easy to add a newbuilt-in function or module to the interpreter, either to perform criticaloperations at maximum speed, or to link Python programs to libraries that mayonly be available in binary form (such as a vendor-specific graphics library).Once you are really hooked, you can link the Python interpreter into anapplication written in C and use it as an extension or command language for thatapplication.

By the way, the language is named after the BBC show “Monty Python’s FlyingCircus” and has nothing to do with reptiles. Making references to MontyPython skits in documentation is not only allowed, it is encouraged!

Now that you are all excited about Python, you’ll want to examine it in somemore detail. Since the best way to learn a language is to use it, the tutorialinvites you to play with the Python interpreter as you read.

In the next chapter, the mechanics of using the interpreter are explained. Thisis rather mundane information, but essential for trying out the examples shownlater.

The rest of the tutorial introduces various features of the Python language andsystem through examples, beginning with simple expressions, statements and datatypes, through functions and modules, and finally touching upon advancedconcepts like exceptions and user-defined classes.