Before we can really explore the Python language we need to know how to execute Python code. We will show this by reviewing a tiny example program that is just one line long.
We must use a plain text editor for working with Python files.* On Windows it is possible to use Notepad, but IDLE includes a suitable Python editor designed specifically for editing Python code: Simply start IDLE and then click File—New Window.
We will type the following line into a file, called hello.py: print "Hello World"
Note that no semicolon is necessary: In Python newline acts as a statement separator. Also, we do not need a newline, "\n", in the string, since print automatically adds a newline unless we suppress it with a trailing comma.
★The programs in this book are written using ASCII characters, with escape sequences where Unicode is required. It is possible to use Latin-1, UTF-8, or other encodings for strings and comments in Python programs, as explained in the documentation under "Encoding declarations".
Assuming that we have saved the code in the file hello.py (in the directory C:\pyqt\chap01 if using Windows), we can start up a console (click Start—>All Programs—Accessories—Console on Windows XP—sometimes Console is called Command Prompt; or run Terminal.app from /Applications/Utilities on Mac OS X), change to that directory, and execute the program like this:
C:\>cd c:\pyqt\chap01 C:\pyqt\chap01>hello.py
As long as Python is correctly installed, Windows will recognize the .py file extension and give the file to python.exe to execute. The program will print "Hello World" on the console as we would expect.*
On Mac OS X and Linux we must explicitly run the interpreter by typing its name and the file's name at the console's prompt, like this:
% python hello.py
This will work providing that Python is installed and in your PATH. Alternatively, for Linux and Mac OS X, we can add an additional "shebang" (shell execute) comment line which tells the operating system to use a Python interpreter, making the hello.py file two lines long:
#!/usr/bin/env python print "Hello World"
For this to work on Mac OS X and Linux, the file's permissions must be set correctly. For example, at the console prompt in the same directory as the file, enter chmod +x hello.py to make the file executable.
Python comments start with "#" and continue until the end of the line. This means that it is perfectly safe to add the "shebang" line to all Python programs, since the comment is ignored on Windows but on Linux it tells the operating system to execute the file using a Python interpreter. Appendix A shows how to associate the Python interpreter with .py and .pyw files on Mac OS X.
When we speak of executing a Python program, what happens behind the scenes is that Python reads the .py (or .pyw) file into memory, and parses it, to get a bytecode program that it then goes on to execute. For each module that is imported by the program, Python first checks to see whether there is a precompiled bytecode version (in a .pyo or .pyc file) that has a timestamp which corresponds to its .py file. If there is, Python uses the bytecode version; otherwise, it parses the module's .py file, saves it into a .pyc file, and uses the bytecode it just generated. So, unlike Java, we don't have to explicitly bytecode-compile any modules, whether they are supplied with Python or are ones we have written ourselves. And in most Python installations, the supplied modules are com-
★Mac OS X users note that whenever we refer to a console, this is the same as a Mac Terminal.
piled as part of the installation process so as to avoid having to compile them whenever a Python application that uses them is run.
Was this article helpful?
Download Tube Jacker And Discover Everything You Need To Know About Jacking Unlimited Traffic From The Video Giant. The drop dead easy way to create winning video campaigns that will FLOOD your website with unstoppable FREE traffic, all on complete and total autopilot. How to exploit a sneaky method of boosting exposure and getting your videos to the top of Google within 72 hours, guaranteed.