1.. _tut-intro:
2
3**********************
4Whetting Your Appetite
5**********************
6
7If you do much work on computers, eventually you find that there's some task
8you'd like to automate.  For example, you may wish to perform a
9search-and-replace over a large number of text files, or rename and rearrange a
10bunch of photo files in a complicated way. Perhaps you'd like to write a small
11custom database, or a specialized GUI application, or a simple game.
12
13If you're a professional software developer, you may have to work with several
14C/C++/Java libraries but find the usual write/compile/test/re-compile cycle is
15too slow.  Perhaps you're writing a test suite for such a library and find
16writing the testing code a tedious task.  Or maybe you've written a program that
17could use an extension language, and you don't want to design and implement a
18whole new language for your application.
19
20Python is just the language for you.
21
22You could write a Unix shell script or Windows batch files for some of these
23tasks, but shell scripts are best at moving around files and changing text data,
24not well-suited for GUI applications or games. You could write a C/C++/Java
25program, but it can take a lot of development time to get even a first-draft
26program.  Python is simpler to use, available on Windows, Mac OS X, and Unix
27operating systems, and will help you get the job done more quickly.
28
29Python is simple to use, but it is a real programming language, offering much
30more structure and support for large programs than shell scripts or batch files
31can offer.  On the other hand, Python also offers much more error checking than
32C, and, being a *very-high-level language*, it has high-level data types built
33in, such as flexible arrays and dictionaries.  Because of its more general data
34types Python is applicable to a much larger problem domain than Awk or even
35Perl, yet many things are at least as easy in Python as in those languages.
36
37Python allows you to split your program into modules that can be reused in other
38Python programs.  It comes with a large collection of standard modules that you
39can use as the basis of your programs --- or as examples to start learning to
40program in Python.  Some of these modules provide things like file I/O, system
41calls, sockets, and even interfaces to graphical user interface toolkits like
42Tk.
43
44Python is an interpreted language, which can save you considerable time during
45program development because no compilation and linking is necessary.  The
46interpreter can be used interactively, which makes it easy to experiment with
47features of the language, to write throw-away programs, or to test functions
48during bottom-up program development. It is also a handy desk calculator.
49
50Python enables programs to be written compactly and readably.  Programs written
51in Python are typically much shorter than equivalent C,  C++, or Java programs,
52for several reasons:
53
54* the high-level data types allow you to express complex operations in a single
55  statement;
56
57* statement grouping is done by indentation instead of beginning and ending
58  brackets;
59
60* no variable or argument declarations are necessary.
61
62Python is *extensible*: if you know how to program in C it is easy to add a new
63built-in function or module to the interpreter, either to perform critical
64operations at maximum speed, or to link Python programs to libraries that may
65only be available in binary form (such as a vendor-specific graphics library).
66Once you are really hooked, you can link the Python interpreter into an
67application written in C and use it as an extension or command language for that
68application.
69
70By the way, the language is named after the BBC show "Monty Python's Flying
71Circus" and has nothing to do with reptiles.  Making references to Monty
72Python skits in documentation is not only allowed, it is encouraged!
73
74Now that you are all excited about Python, you'll want to examine it in some
75more detail.  Since the best way to learn a language is to use it, the tutorial
76invites you to play with the Python interpreter as you read.
77
78In the next chapter, the mechanics of using the interpreter are explained.  This
79is rather mundane information, but essential for trying out the examples shown
80later.
81
82The rest of the tutorial introduces various features of the Python language and
83system through examples, beginning with simple expressions, statements and data
84types, through functions and modules, and finally touching upon advanced
85concepts like exceptions and user-defined classes.
86
87
88