1.4. The Python Programming Language

The programming language you will be learning is Python. Python is an example of a high-level language; other high-level languages you might have heard of are C++, PHP, and Java.

As you might infer from the name high-level language, there are also low-level languages, sometimes referred to as machine languages or assembly languages. Loosely speaking, computers can only execute programs written in low-level languages. Thus, programs written in a high-level language have to be processed before they can run. This extra processing takes some time, which is a small disadvantage of high-level languages. However, the advantages to high-level languages are enormous.

First, it is much easier to program in a high-level language. Programs written in a high-level language take less time to write, they are shorter and easier to read, and they are more likely to be correct. Second, high-level languages are portable, meaning that they can run on different kinds of computers with few or no modifications. Low-level programs can run on only one kind of computer and have to be rewritten to run on another.

Due to these advantages, almost all programs are written in high-level languages. Low-level languages are used only for a few specialized applications.

Two kinds of programs process high-level languages into low-level languages: interpreters and compilers. An interpreter reads a high-level program and executes it, meaning that it does what the program says. It processes the program a little at a time, alternately reading lines and performing computations.

Interpret illustration, shows that source code goes through the interpreter, which runs the program.

A compiler reads the program and translates it completely before the program starts running. In this case, the high-level program is called the source code, and the translated program is called the object code or the executable. Once a program is compiled, you can execute it repeatedly without further translation. If you make changes to your source code, you need to compile your files into an executable again.

Compile illustration, shows that source code goes through the compiler to become object code, and object code is executed to run the program.

Many modern languages use both processes. They are first compiled into a lower level language, called byte code, and then interpreted by a program called a virtual machine. Python uses both processes, but because of the way programmers interact with it, it is usually considered an interpreted language.

For the core material in this book, you will not need to install or run python natively on your computer. Instead, you’ll be writing simple programs and executing them right in your browser.

At some point, you will find it useful to have a complete python environment, rather than the limited environment available in this online textbook. To do that, you will either install python on your computer so that it can run natively, or use a remote server that provides either a command line shell or a jupyter notebook environment.

1.4.1. ActiveCode in Runestone

This book provides two ways to execute Python programs. Both techniques are designed to assist you as you learn the Python programming language. They will help you increase your understanding of how Python programs work.

First, you can write, modify, and execute programs using a unique ActiveCode interpreter that allows you to execute Python code right in the text itself (right from the web browser). Although this is certainly not the way real programs are written, it provides an excellent environment for learning a programming language like Python since you can experiment with the language as you are reading.

Take a look at the ActiveCode interpreter in action. Try pressing the Save & Run button below. (If you are not logged in, it will just say Run.)

Now try modifying the program shown above. First, modify the string (the sentence in quotations) in the first print statement by changing the word adds to the word multiplies. Now press Save & Run again. You can see that the result of the program has changed. However, it still prints “5” as the answer. Modify the second print statement by changing the addition symbol, the +, to the multiplication symbol, *. Press Save & Run again to see the new results.

As the name suggests, Save & Run also saves your latest version of the code, and you can recover it in later sessions when logged in. If not logged in, Run saves versions only until your browser leaves the current web page, and then you lose all modifications.

If you are logged in, when a page first loads, each ActiveCode window will have a Load History button, to the right of the Save & Run button. If you click on it, or if you run any code, that button turns into a slider. If you click on the slider location box, you can use your left and right arrow buttons to switch to other versions you ran. Alternatively you can drag the box on the slider. Now move the slider to see a previously saved version of your code. You can edit or run any version.

1.4.2. CodeLens in Runestone

In addition to ActiveCode, you can also execute Python code with the assistance of a unique visualization tool. This tool, known as CodeLens, allows you to control the step by step execution of a program. It also lets you see the values of all variables as they are created and modified. In ActiveCode, the source code executes from beginning to end and you can only see the final result. In CodeLens you can see and control the step by step progress. Note that the red arrow always points to the next line of code that is going to be executed. The light green arrow points to the line that was just executed. Click on the “Show in CodeLens” button in the code example above to make the CodeLens window show up, and then click on the Forward button a few times to step through the execution.

Sometimes, we will present code examples explicitly in a CodeLens window in the textbook, as below. When we do, think of it as an encouragement to use the CodeLens features to step through the execution of the program to understand how the code is executed. This is really important to to and it will help you learn to ‘Think Like a Computer’.

Activity: CodeLens (clens_first_example)

Check your understanding

You have attempted of activities on this page