###### Run the cell below to load the visual style of this notebook.¶
In [2]:
from IPython.core.display import HTML
css_file = 'styles.css'

Out[2]:

## Exercise

Draw diagrams showing what variables refer to what values after each statement in the following program:

import numpy as np
mass = 58.5
age  = 36


## Learning Objectives

• Explain what a library is, and what libraries are used for.
• Load a Python library and use the things it contains.
• Read tabular data from a file into a program.
• Assign values to variables.
• Select individual values and subsections from data.
• Perform operations on arrays of data.
• Display simple graphs.

Data which can be modified in place is called mutable, while data which cannot be modified is called immutable. Strings and numbers are immutable. This does not mean that variables with string or number values are constants, but when we want to change the value of a string or number variable, we can only replace the old value with a completely new value.

Lists and arrays, on the other hand, are mutable: we can modify them after they have been created. We can change individual elements, append new elements, or reorder the whole list. For some operations, like sorting, we can choose whether to use a function that modifies the data in place or a function that returns a modified copy and leaves the original unchanged.

Be careful when modifying data in place. If two variables refer to the same list, and you modify the list value, it will change for both variables! If you want variables with mutable values to be independent, you must make a copy of the value when you assign it.

Because of pitfalls like this, code which modifies data in place can be more difficult to understand. However, it is often far more efficient to modify a large data structure in place than to create a modified copy for every small change. You should consider both of these aspects when writing your code.

This markdown cell is styled using the "Style cells" notebook extension